2015-11-22 78 views
0

我有一個自定義類QBChatDialog對象,我在SQLite數據庫存儲我喜歡的NSDictionary自定義類

-(void)storeInDB:(QBChatDialog *)dialog {  
     NSString *query = = [NSString stringWithFormat:@"INSERT INTO dialogs (dialog_id,last_message) VALUES ('%@','%@')",dialog.ID,dialog.lastMessageText]; 
     //run the query 
} 

然後我從數據庫中檢索作爲NSDictionary的。

// after fetching as an array in dbrecord 
NSDictionary *dialogDictionary = @{@"dialog_id":[dbrecord objectAtIndex:DIALOG_ID_INDEX], 
           @"dialog_last_message":dbrecord objectAtIndex:DIALOG_LAST_MESSAGE_INDEX] 
            }; 

我該如何映射回QBChatDialog類,以獲得像dialog.IDdialog.lastMessageText值。該類是第三方API,有些屬性是read-only

感謝

回答

0

你並不需要設置只讀屬性,所以你基本上可以解開你的NSDictionary,只要確保你肯定商店的對話ID,它的類型,這樣就可以使用此代碼開始:

QBChatDialog *fetchedDialog = [[QBChatDialog alloc] initWithDialogID:dialogDictionary[@"dialog_id"] type:dialogDictionary[@"dialog_type"]]; 

而這只是在每次你需要的後場,這不是隻讀的,如:

fetchedDialog.lastMessageText = dialogDictionary[@"dialog_last_message"]; 
+0

感謝您的回答,但如果其不具有這種方法的類?像QBChatMessage一樣。 – Sikander

+0

你在說什麼方法?在裏面?如果是的話,那沒關係。在QBChatDialog的情況下,自定義init是隻讀屬性的必要原因,據我所知,QBChatMessage沒有這樣的屬性。 –