0

所以,我有 CoreData 实体Book, Bookmark, Highlight. 一本书包含关于这本书的信息和一个NSSetBookmarks

我想删除一本书中的书签,然后立即用我的集合重新填充它们。

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

他们像:

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

self.managedObjectContext使用和有什么区别bookmark.managedObjectContext。此外,两者似乎都对内容没有任何影响,并且在尝试删除forin循环中的所有书签然后forin再次通过循环添加新集时出现错误。

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

4

1 回答 1

2

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

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

你在使用不同的线程吗?不同的语境?你有什么类型的错误?分享它,为您的问题添加编辑。

于 2013-05-18T16:39:49.620 回答