我試圖使用CoreData更新數據庫中的現有記錄,但在使用託管對象訪問器方法時出現異常。iOS: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的無法識別的選擇器' *第一次擲出調用堆棧:
聯繫人是我在Xcode中自動生成的NSManagedObject類。
我的方法在這裏不正確嗎?我在檢索或刪除記錄方面沒有任何問題,但我很難找到如何更新數據。
任何指導或幫助將不勝感激。謝謝。
看看你在調試器中的'contact'對象,它看起來不像你認爲的那種類型。 – jrturton 2012-03-23 08:14:12