self.managedObjectContext和managedObjectInstance.managedObjectContext有什么区别?

时间:2013-05-18 16:22:31

标签: iphone ios cocoa-touch cocoa core-data

所以,我有CoreData实体BookBookmarkHighlight。一本书包含有关该书的信息以及NSSet Bookmarks

我想删除一本书中出现的书签,然后立即用我的套装重新填充它们。

这是我从另一个项目获得的代码,我似乎无法理解为什么他们使用了不同类型的deleteObject方法。

他们就像:

for (Bookmark *bookmark in book.bookmarks) {
    [bookmark.mamagedObjectContext deleteObject:bookmark];
}

使用self.managedObjectContextbookmark.managedObjectContext之间的区别是什么?此外,要么似乎对内容没有任何影响,我在尝试删除forin循环中的所有书签然后通过forin循环添加新集时出错再次。

如果需要更多信息,请在评论中提及。

1 个答案:

答案 0 :(得分:2)

managedObjectInstance.managedObjectContext返回接收者注册的托管对象上下文。

换句话说,如果您在主线程上下文中创建了一个书签(与主线程中创建的上下文关联的书签),bookmark.managedObjectContext将指向该页面。

你使用不同的线程吗?不同的背景?你有什么类型的错误?分享它,为你的问题添加一个编辑。