假设我在私有NSManagedObjectContext上的performBlock中获取了一个NSManagedObject。 我还在AppDelegate中保存了一个NSManagedObject的指针。所以基本上我把它放在'主线'上。 这会导致任何问题吗? 请注意,我总是访问提交到正确上下文的performBlock中的属性。
答案 0 :(得分:2)
不,你不能这样做。对来自不同上下文的对象的引用可能会导致您的应用崩溃。
有几个解决方案。例如,您的全局变量可以是一个唯一属性,您可以使用该属性在正确的上下文中获取对象。
某些操作可能在与保存全局对象的上下文相同的上下文中完成。
最后,您还可以使用objectID
(一种不透明的类型NSManagedObjectID
)在上下文之间传递对象。您可以使用object(with:)
在特定线程中初始化本地对象。