我对核心数据和目标c一般都是新手。在NSManagedObjectContext的文档中,在reset方法中,声明:
然而,我真的无法弄清楚这一点 - "丢弃对所提取的任何管理对象的引用"意味着我该怎么做? 顺便说一句,我问的是这个问题,因为我必须在调用重置方法时崩溃的应用程序中调试一些代码。如果您使用此方法,则应确保您也放弃对使用接收方获取的任何管理对象的引用,因为它们之后将无效。
我尝试寻找答案,并在Stack Overflow上找到this问题,但无法找到答案。
如果您知道丢弃对已获取的托管对象的引用意味着什么和/或如何执行它,将非常感激。
答案 0 :(得分:0)
在今天的ARC世界中,这意味着你不应该持有任何非归零的引用。具有assign属性的强引用和属性都符合条件。
传递托管对象通常不是一个好主意,因为在线程和适当的上下文方面存在问题。通常最好传递objectID并让被调用者将对象提取到适当的上下文中。如果你这样做,你应该没什么问题。
P.S。如果对象的上下文很长并且您使用performBlock:
和performBlockAndWait:
API,则可以传递对象。如果您这样做,则可能会遇到阻止对无效对象的引用的问题。