所以,我有CoreData实体Book
,Bookmark
,Highlight
。一本书包含有关该书的信息以及NSSet
Bookmarks
。
我想删除一本书中出现的书签,然后立即用我的套装重新填充它们。
这是我从另一个项目获得的代码,我似乎无法理解为什么他们使用了不同类型的deleteObject
方法。
他们就像:
for (Bookmark *bookmark in book.bookmarks) {
[bookmark.mamagedObjectContext deleteObject:bookmark];
}
使用self.managedObjectContext
和bookmark.managedObjectContext
之间的区别是什么?此外,要么似乎对内容没有任何影响,我在尝试删除forin
循环中的所有书签然后通过forin
循环添加新集时出错再次。
如果需要更多信息,请在评论中提及。
答案 0 :(得分:2)
managedObjectInstance.managedObjectContext
返回接收者注册的托管对象上下文。
换句话说,如果您在主线程上下文中创建了一个书签(与主线程中创建的上下文关联的书签),bookmark.managedObjectContext
将指向该页面。
你使用不同的线程吗?不同的背景?你有什么类型的错误?分享它,为你的问题添加一个编辑。