可以在对象自己的managedObjectContext上调用deleteObject:吗?

时间:2015-12-29 08:36:16

标签: ios objective-c core-data

要从核心数据中删除对象o,是否可以使用对象自己对托管对象上下文managedObjectContext的引用?

[o.managedObjectContext deleteObject:o];

2 个答案:

答案 0 :(得分:2)

苹果documentation说好了。

说明:

  • deleteObject:上呼叫managedObjectContext时,我们会从managedObjectContext标记要删除的对象。当我们在上下文中调用save:时,会发生实际的删除。
  • 上述语句[o.managedObjectContext deleteObject:o]实际上告诉编译器将消息deleteObject:发送到对象o.managedObjectContext,该对象即使在删除o后仍然有效。

答案 1 :(得分:0)

是的,您可以这种方式删除对象,但删除后必须保存。

[self.managedObjectContext deleteObject:thisItem];

NSError *savingError;

if ([self.managedObjectContext save:&savingError]){
    NSLog(@"saved Ok");
}else{
    NSLog(@"error %@", savingError);
}