迁移Core Data存储时,显然随机崩溃

时间:2009-10-28 13:01:01

标签: cocoa macos core-data mapping-model

我正在尝试在Mac OS X Leopard应用中迁移Core Data SQLite商店。迁移本身很简单,模型版本之间只有一些变化,而且有一个自定义NSEntityMigrationPolicy可以进行一些字符串操作。

99%的时间,这完美无缺。但是,偶尔会在EXC_BAD_ACCESS下的objc_assign_strongCast内与migrateStoreFromURL: type: options: withMappingModel: toDestinationURL: destinationType: destinationOptions: error:崩溃。

此时,我的自定义迁移策略尚未被调用,因此我认为这不会导致它。我还检查了我的映射模型文件,并且一切似乎都很好。

踢球者是如果我只是尝试再次迁移同一个文件 ,它通常可以正常工作。我不知道从哪里开始调试这个,所以欢迎任何指针!

2 个答案:

答案 0 :(得分:2)

在与DTS交谈后,结果发现 是Mac OS X 10.6上Core Data中的一个错误。

解决方法:确保您没有将nil错误传递给migrateStoreFromURL: type: options: withMappingModel: toDestinationURL: destinationType: destinationOptions: error:。这应该是允许的,但在这种情况下会导致崩溃。

答案 1 :(得分:0)

两件事:

  1. 使用Apple提供的工具(即Instruments)来追踪内存管理问题。它可能仍然在你自己的代码中。
  2. 尝试将此简化为简单,可重现的案例,并向Apple提交错误。*
  3. 我注意到围绕“自动”迁移出现了很多问题,让我严重停顿。解决这些问题的唯一方法是确保Apple知道每一个。