2015-10-25 14 views
0

我是通用核心数据和objective-c的新手。在NSManagedObjectContext中的文档,在复位方法中,指出:在NSManagedObjectContext的重置方法中丢弃对托管对象的引用

如果使用这种方法,你应该确保你也放弃对任何托管对象的引用使用接收器,因为它们将是无效后取出。

但是我真的无法弄清楚 - “丢弃对任何托管对象的引用”意味着什么?我该如何做? 顺便说一句,我问这个问题,因为我不得不在调用重置方法时崩溃的应用程序中调试一些代码。

我试图寻找答案,并发现this堆栈溢出的问题,但无法真正找出答案。

如果您有任何想法,丢弃对提取的管理对象的引用意味着什么和/或如何去做,它将非常感激。

回答

0

在今天的ARC世界中,这意味着您不应该持有任何非归零引用。带有assign属性的强引用和属性都有资格。

传递管理对象通常不是一个好主意,因为有关于线程和正确上下文的问题。通常传递objectID并让被调用者将对象提取到合适的上下文中通常会更好。如果你这样做,你应该没有什么问题。

P.S.如果上下文寿命很长,并且您使用了performBlock:performBlockAndWait: API,则可以传递对象。如果你这样做,你可能会遇到问题,引用对象失效。