3
我在我的NSManagedObject实例上观察到以下行为。核心数据管理对象的生存期
- ObjA是从NSManagedObjectContext ContextA加载的NSManagedObject实例。
- 我保留ObjA
- 我访问ObjA的PropertyA(ObjA没有关系,只有基本的属性) - 所有的作品在这个阶段
- 我从ContextA 删除ObjA
- 罚款我救ContextA
- ObjA是没有被释放(因为我对它进行了额外的保留)。例如,我仍然可以检查它是否为retainCount。
- 我访问ObjA的PropertyA - >我得到SIGABRT
我不知道这是否是CoreData设计的工作方式或从我的代码的副作用。
好的,那就解决了。尽管Core Data假设独占内存管理控制,但仍然有点奇怪。使共享托管对象变得有点棘手。 – 2011-03-08 10:14:31
你可以通过它们,只是不要先删除它们。只要您在同一个线程中,您的托管对象上下文也可以传递。 – 2011-03-08 11:07:17