代码之家  ›  专栏  ›  技术社区  ›  iKenndac

显然,迁移核心数据存储时发生随机崩溃

  •  2
  • iKenndac  · 技术社区  · 15 年前

    我正在尝试在我的MacOSXLeopard应用程序中迁移核心数据sqlite存储。迁移本身很简单,模型版本之间只有几个更改,并且有一个自定义 NSEntityMigrationPolicy 这需要一些字符串操作。

    99%的时间,这是完美的。但是,偶尔它会与 EXC_BAD_ACCESS 在里面 objc_assign_strongCast 在下面 migrateStoreFromURL: type: options: withMappingModel: toDestinationURL: destinationType: destinationOptions: error: .

    此时,我的自定义迁移策略还没有被调用,所以我不认为这是造成这种情况的原因。我还三次检查了我的映射模型文件,看起来一切都很好。

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

    2 回复  |  直到 14 年前
        1
  •  2
  •   iKenndac    15 年前

    和数据传输系统交谈后,结果是 Mac OS X 10.6核心数据中的一个错误。

    解决方法:确保你没有通过 nil 错误到 migrateStoreFromURL: type: options: withMappingModel: toDestinationURL: destinationType: destinationOptions: error: . 应该允许这样做,但在这种情况下,它会导致崩溃。

        2
  •  0
  •   Joshua Nozzi    15 年前

    两件事:

    1. 使用苹果提供的工具(即仪器)来跟踪内存管理问题。它可能仍然在您自己的代码中。
    2. 尝试将其简化为一个简单、可复制的案例,并向Apple提交一个bug。*

    我注意到围绕“自动”迁移出现了许多问题,这些问题给了我严重的停顿。唯一的解决方法是确保苹果知道每一个问题。