释放错误[NSPersistentStoreCoordinator initWithManagedObjectModel]

时间:2014-05-03 00:20:41

标签: objective-c macos cocoa core-data

创建persistentStoreCoordinator时,对addPersistentStoreWithType的呼叫崩溃。使用Zombies进行调试会发现释放错误

  

- [NSRelationshipDescription name]:发送到解除分配的实例0x1e5fd0f50的消息

我注意到NSManagedObjectModel已成功创建(打印到控制台)但是只要PersistentStoreCoordinator与模型一起使用,尝试打印模型对象就会返回相同的解除分配的实例错误。

我正在使用来自 CocoaPods SSDataKit,但也将相同的代码移动到我的app委托中,以便使用相同的结果进行测试。我已禁用优化并已启用验证ARC。

关于这可能是什么的任何想法?

Mac 10.9.2 Xcode 5.1.1

1 个答案:

答案 0 :(得分:2)

发布后不久,我发现了这个问题。我的模型与目标对象有关系,其中在父实体中定义了反向关系。

示例:

实体(关系) Foo(酒吧) - >酒吧(foo)

Bar没有定义foo - 它是父实体的。

CoreData不会发出任何类型的警告信号,它只会从解除分配的关系中崩溃。

我以这种方式更新了我的模型: Foo(酒吧) - > Baz(foo)

然后在Bar中提供了一组新的访问器来包装CoreData在Baz中生成的访问器。