![]() |
1
15
两种可能性:
打开 Core Data debugging 您应该能够看到核心数据在进行迁移时所寻找的哈希值。将这些哈希值与存储在磁盘上的内容进行比较,看看它们是否匹配。同样,调试应该让您看到映射模型中的散列,以帮助您匹配所有内容。
更新1更改源模型和目标模型的位置已移动到编辑器窗口的底部:
|
![]() |
2
6
这似乎不对。为什么要合并模型?你想用 模型1 从NSManagedObjectModel类参考
模型1 ).. 只要它在您的包中,自动轻量级迁移过程就会发现并使用它。 我建议放弃您在Xcode中创建的映射模型,正如我之前所做的那样 seen terrible performance 与自动轻量级迁移相比。您的里程数可能会有所不同,我在不同车型之间的变化与您的不同,但我不会感到惊讶。尝试在捆绑包中使用和不使用您自己的映射模型的情况下进行计时。
YourModelName.xcdatamodeld “和” YourModelName.xcdatamodel “在它里面。 此外,您还可以检查该模型是否与现有的迁移前持久存储兼容:
该代码假定您有一个方法
|
![]() |
3
4
当我得到这个错误,我已经更新了我的核心数据模型,但没有清除我的测试手机的应用程序实例。这意味着保存到手机核心数据的模型与我试图在代码中使用的不匹配。 我从手机中删除了该应用程序,并成功地重新构建/运行。 |
![]() |
4
3
在尝试升级现有应用程序的核心数据模型(并迁移遗留数据)时,我遇到了一个场景,第三方框架正在将数据写入应用程序的数据库。我遇到了这个错误,“找不到源存储的模型”。因为在我尝试迁移时没有加载第三方模型,所以迁移失败。 我在解决这个问题的过程中编写了这个方法(如下)。它可能对那些面临这类问题的人有用。
此代码段将获取存储的元数据。
VersionInfo.plist(存储在已编译的应用程序包中)包含与模型中的各种实体(base64编码)关联的哈希。类似地,数据存储(Z_METADATA.Z_PLIST)中的BLOB列包含二进制编码的属性列表,该属性列表具有与数据关联的每个实体的哈希值(也是base64编码的)。 NSManagedObjectModel上的-entitiesByName方法对于转储特定模型中存在的实体和散列非常有用。 |
![]() |
5
1
我也有类似的问题。我用过
来自苹果文档:
如果你使用
我最终做的是(手动)创建了一个新的合并
|
![]() |
Martin sku · 在目标C中打印时间 3 年前 |
![]() |
Vinod prajapat · 如何更新数组的最后一个元素? 3 年前 |
![]() |
subin272 · 修复iOS中的多个按钮单击事件? 7 年前 |
![]() |
James Chan · 如何使用锁定/解锁? 7 年前 |
![]() |
Josh F. · NSBundle mainBundle返回零 7 年前 |