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"];
Другие вопросы по тегам