数据模型 > 添加模型Xcode 中的版本。 版本之-6ren">
gpt4 book ai didi

objective-c - 核心数据迁移问题: "Persistent store migration failed, missing source managed object model."

转载 作者:太空狗 更新时间:2023-10-30 03:30:47 26 4
gpt4 key购买 nike

背景

  • cocoa 非文档核心数据具有两个托管对象的项目楷模。
  • 模型 1 保持不变。模型2已经改变,所以我想迁移商店。
  • 我创建了一个新版本按设计 > 数据模型 > 添加模型Xcode 中的版本。
  • 版本之间的区别在于单一关系已从一对变为多。
  • 我做了我的对模型所做的更改,然后保存。
  • 我制作了一个新的映射模型有旧模型作为来源和新模型模型作为目的地。
  • 我已经确保所有映射模型和数据模型正在编译,所有的都复制到我的资源文件夹应用程序包。
  • 我已经通过传入字典NSMigratePersistentStoresAutomaticallyOption键为 [NSNumber
    numberWithBool:YES]
    添加时持久存储。
  • 而不是合并 bundle 中的所有型号,我已经指定了两个我想使用的模型(模型 1 和模型 2) 的新版本并合并他们使用 modelByMergingModels:

问题

无论我如何迁移,我都会收到错误消息:

"Persistent store migration failed, missing source managed object model."

我尝试过的

  • 我会在每次构建后进行清理。
  • 我尝试了各种组合只有我正在迁移的模型在资源中,正在编译,或者两个都。
  • 由于错误信息暗示找不到来源我的迁移模型,我已经尝试过拥有模型的每个版本Resources 文件夹和正在编译。
  • 我确定我不是犯了一个非常基本的错误切换回原来的我的数据模型的版本。该应用程序运行良好。
  • 我已经删除了映射模型和新版本模型,清理,然后重新创建两者。
  • 我试过做出不同的改变在新模型中 - 删除实体相反。

我已经无计可施了。

我忍不住想我在某个我没有看到的地方犯了一个巨大的错误。有什么想法吗?

最佳答案

两种可能性:

  1. 您应用中的源模型与磁盘上的实际存储不匹配。
  2. 您的映射模型与您的源模型不匹配。

打开 Core Data debugging并且您应该能够看到 Core Data 在进行迁移时正在寻找的哈希值。将这些哈希值与您存储在磁盘上的内容进行比较,看看它们是否匹配。同样,调试应该让您看到映射模型中的哈希值,以帮助您匹配所有内容。

如果只是您的映射模型未对齐,您可以在 Xcode 的设计菜单中告诉它从源更新。如果您在磁盘上丢失了存储文件的实际源模型,那么您可以查看您的版本控制系统或尝试使用自动迁移来将该文件迁移到您认为是源的模型。

更新1

更改源模型和目标模型的位置已移至编辑器窗口的底部:

关于objective-c - 核心数据迁移问题: "Persistent store migration failed, missing source managed object model.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2492103/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com