Я пытаюсь обновить существующую запись в базе данных с помощью CoreData, но получаю исключение при использовании метода доступа к управляемым объектам.
Кодовая выдержка:
NSManagedObjectContext *tmpManagedObjectContext = [self.fetchedResultsController managedObjectContext];
NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Contact" inManagedObjectContext:tmpManagedObjectContext];
[request setEntity:entity];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"contact_id = %@", [dict objectForKey:@"contact_id"]];
[request setPredicate:predicate];
NSError *error = nil;
[request setResultType:NSDictionaryResultType];
[request setPropertiesToFetch:[NSArray arrayWithObjects:@"first_name",@"sync_status",nil]];
Contact *contact = [[managedObjectContext executeFetchRequest:request error:&error] objectAtIndex:0];
contact.sync_status = @"Y";
error = nil;
if (![tmpManagedObjectContext save:&error]) {
NSLog(@"Error setting sync status on contact record - error: %@", [error localizedDescription]);
}
Строка, которая вызывает ошибку:
contact.sync_status = @"Y";
Ошибка * Завершение приложения из-за необработанного исключения «NSInvalidArgumentException», причина: '- [NSKnownKeysDictionary1 setSync_status:]: нераспознанный селектор, отправленный экземпляру 0x8907fd0'
* Первый стек вызовов вызовов:
Контакт - это класс NSManagedObject, который я автоматически сгенерировал в Xcode.
Мой подход здесь неправильный? У меня не было проблем с получением или удалением записей, но я спотыкаюсь о том, как обновить данные.
Любое руководство или помощь будет принята с благодарностью. Спасибо.