因此,我有CoreData实体Book、Bookmark、Highlight。一本书包含关于这本书的信息和Bookmarks的NSSet。
我想删除一本书中的书签,然后立即用我的集合重新填充它们。
这是我从另一个项目中获得的代码,我似乎不明白为什么他们要使用不同种类的deleteObject方法。
它们是这样的:
for (Bookmark *bookmark in book.bookmarks) {
[bookmark.mamagedObjectContext deleteObject:bookmark];
}使用self.managedObjectContext和bookmark.managedObjectContext有什么不同。而且,这两种方法似乎都不会对内容产生任何影响,并且在尝试删除forin循环中的所有书签,然后再次通过forin循环添加新的书签集时,我得到了一个错误。
如果需要更多信息,请在评论中注明。
发布于 2013-05-19 00:39:50
managedObjectInstance.managedObjectContext返回接收方注册的托管对象上下文。
换句话说,例如,如果您在主线程上下文(与在主线程中创建的上下文相关联的上下文)中创建了一个书签,bookmark.managedObjectContext将指向该书签。
你在使用不同的线程吗?不同的上下文?你有什么类型的错误?分享它,并对您的问题进行编辑。
https://stackoverflow.com/questions/16626479
复制相似问题