我试图使用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'属性。另外,在调用'executeFetchRequest:error:'或'save:'时,检查你的'error'对象是否有问题。 – colincameron
感谢您的回复。两者的错误均为空。此外,再次检查案件,这是正确的。 – Mackey18