0

我正在尝试使用 NSPredicate 编辑核心数据条目中的条目,但我不完全确定它是如何工作的。

我正在尝试根据来自另一个对象的 id 获取实体,但我看不出我哪里出错了。这是我的有效数据模型:实体:myEntity,属性:名称、id、值。

我正在尝试通过以下方式在数据库中检索正确的对象:

    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 类型,它是另一个对象,但分配类型是相同的。

问候,
迈克

4

1 回答 1

0

结案伙计们。我犯的愚蠢错误。我非常专注于让 Core Data 的这个新部分正常工作(我觉得这令人生畏),以至于我实际上忘记了分配 self.itemToEdit.value。很抱歉浪费您的时间。

麦克风

于 2012-11-30T16:01:16.707 回答