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 클래스입니다.
내 접근 방식이 잘못 되었습니까? 레코드를 가져 오거나 삭제하는 데 아무런 문제가 없었지만 데이터를 업데이트하는 방법에 문제가 있습니다.
모든 도움이나 도움을 주시면 감사하겠습니다. 감사.
디버거에서 '연락처'개체를 보면, 생각하는 유형이 아닌 것처럼 보입니다. – jrturton