NSDictionary в пользовательский класс
У меня есть собственный объект класса QBChatDialog, который я храню в базе данных sqlite, как
-(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.ID
или же dialog.lastMessageText
, Класс является сторонним API, а некоторые свойства read-only
,
Спасибо
1 ответ
Вам не нужно устанавливать свойства только для чтения, поэтому вы можете развернуть свой NSDictionary, просто убедитесь, что вы точно знаете идентификатор диалогового окна и его тип, чтобы вы могли начать с этого кода:
QBChatDialog *fetchedDialog = [[QBChatDialog alloc] initWithDialogID:dialogDictionary[@"dialog_id"] type:dialogDictionary[@"dialog_type"]];
И после этого просто установите все необходимые поля, которые не только для чтения, например:
fetchedDialog.lastMessageText = dialogDictionary[@"dialog_last_message"];