NSPredicate를 사용하여 코어 데이터 항목의 항목을 편집하려고하는데 어떻게 작동하는지 완전히 모르겠습니다.NSPredicate를 사용하여 코어 데이터 정보 덮어 쓰기
다른 개체의 ID를 기반으로 엔티티를 가져 오려고하지만 잘못된 위치를 볼 수 없습니다. 내 데이터 모델이 실제로 적용됩니다. 엔터티 : myEntity, 특성 : name, id, value.
내가이를 통해 데이터베이스에서 올바른 객체 검색하기 위해 노력하고있어 : 어떤 이유로NSEntityDescription *entity = [NSEntityDescription entityForName:@"myEntity" inManagedObjectContext:self.managedObjectContext];
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:entity];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"id == %@", self.itemToEdit.ID];
[request setPredicate:predicate];
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
[request setSortDescriptors:sortDescriptors];
NSError *error;
MyEntity *myEntity = [[self.managedObjectContext executeFetchRequest:request error:&error] objectAtIndex: 0];
myEntity.value = self.itemToEdit.anotherValue;
[self.managedObjectContext save:&error];
을, 데이터가 저장되지 않고, 응용 프로그램은 저를지도하는 중 하나는 믿고 충돌하지 않습니다 문제는 술어와 관련이 있습니다. 어쨌든 코드에 어떤 문제가 있습니까? 참고로 itemToEdit은 myEntity 유형이 아니며 다른 객체이지만 할당 유형이 동일합니다.
감사합니다,
마이크
당신의 술어에서 'id'가 정확한 경우인지 확인 했습니까? 'itemToEdit' 객체에는 대문자로 된'ID' 속성이 있습니다. 또한'error' 객체를 검사하여'executeFetchRequest : error :'또는'save :'를 호출 할 때 문제가 있는지 확인하십시오. – colincameron
답장을 보내 주셔서 감사합니다. 오류는 둘 모두에 대해 null입니다. 또한 케이스를 두 번 확인해도 정확합니다. – Mackey18