释放错误 [NSPersistentStoreCoordinator initWithManagedObjectModel]
Posted
技术标签:
【中文标题】释放错误 [NSPersistentStoreCoordinator initWithManagedObjectModel]【英文标题】:Deallocation error [NSPersistentStoreCoordinator initWithManagedObjectModel] 【发布时间】:2014-05-03 00:20:40 【问题描述】:创建persistentStoreCoordinator
时,对addPersistentStoreWithType
的调用会崩溃。使用 Zombies 进行调试会发现释放错误
-[NSRelationshipDescription name]:消息发送到已释放实例 0x1e5fd0f50
我注意到NSManagedObjectModel
已成功创建(打印到控制台),但是一旦PersistentStoreCoordinator
与模型一起启动,尝试打印模型对象就会返回相同的解除分配实例错误。
我正在使用 CocoaPods 中的SSDataKit
,但也将相同的代码移到了我的应用程序委托中,以进行相同结果的测试。我已禁用优化并验证 ARC 已启用。
关于这可能是什么的任何想法?
Mac 10.9.2 Xcode 5.1.1
【问题讨论】:
【参考方案1】:发布后不久,我发现了问题。我的模型与在父实体中定义反向关系的目标对象有关系。
例子:
实体(关系) 富(酒吧)-> 酒吧(富)
Bar 没有定义 foo——它是父实体。
CoreData 不会发出任何类型的警告,它只是从解除分配的关系中崩溃。
我以这种方式更新了我的模型: Foo(条)-> Baz(foo)
然后在 Bar 中提供了一组新的访问器,将 CoreData 生成的访问器包装在 Baz 中。
【讨论】:
以上是关于释放错误 [NSPersistentStoreCoordinator initWithManagedObjectModel]的主要内容,如果未能解决你的问题,请参考以下文章