释放错误 [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]的主要内容,如果未能解决你的问题,请参考以下文章

C++,释放已经释放不会产生编译器错误

释放先前释放的对象问题

为啥释放内存会导致分段错误?

尝试释放我的 soundPool 时出现错误

为啥会发生这种双释放错误?

TableViewCell 自动释放错误