2

我正在尝试在我的 Mac OS X Leopard 应用程序中迁移 Core Data SQLite 存储。迁移本身很简单,模型版本之间只有一些更改,并且有一个自定义NSEntityMigrationPolicy可以进行一些字符串操作。

99% 的时间,这都能完美运行。但是,有时它会EXC_BAD_ACCESS在 inobjc_assign_strongCast下崩溃migrateStoreFromURL: type: options: withMappingModel: toDestinationURL: destinationType: destinationOptions: error:

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

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

4

2 回答 2

2

在与 DTS 交谈后,事实证明这Mac OS X 10.6 上的 Core Data 中的一个错误。

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

于 2009-11-04T16:06:17.907 回答
0

两件事情:

  1. 使用 Apple 提供的工具(即 Instruments)来追踪内存管理问题。它可能仍然在您自己的代码中的某个地方。
  2. 尝试将其简化为一个简单、可重现的案例,并向 Apple 提交错误。*

我注意到围绕“自动”迁移出现了很多问题,这些问题让我严重停顿。解决它们的唯一方法是确保 Apple 了解它们中的每一个。

于 2009-11-03T15:54:44.193 回答