我已经改变了我的核心数据模型一点(设置一些属性为optional
和non-optional
)。
不幸的是,我没有打开自动版本控制…
我昨天已经把我的App上传到App Store,苹果还在审核中。我担心它会破坏我的应用程序的现有安装。
这就是为什么我想取消我目前上传的二进制并将我的核心数据模型重置为以前的属性设置,然后再次上传应用程序。
这使我想到以下问题:
- 如何确定当前数据模型是否与现有一个?这纯粹是基于属性的比较吗或者通过比较Core的内容文件中的
systemVersion
数据模型? - 我如何解决我的问题,避免我的应用程序的新版本
由于不兼容的数据模型 将导致崩溃
通过匹配版本号来确定兼容的版本。
按照你的建议去做。拉出二进制文件,恢复您的更改,版本模型,重制您的更改,确保启用了自动迁移并测试它是否正确工作。
版本号是通过生成一个32字节的组件哈希摘要来创建的,这些组件比较是否相等:
苹果ref
对于每个实体,以下属性必须相等:name、parent、isAbstract和properties。className、userInfo和验证谓词不进行比较。
对于每个实体中的每个属性,以下属性必须相等:name, isOptional, isttransient , isReadOnly,对于属性attributeType,对于关系destinationEntity, minCount, maxCount, deleterrule 和 inverserelship , attributeType。userInfo和验证谓词不比较。
从技术上讲,如果你不改变任何不影响版本号的东西,那么你不需要对模型进行版本化。请注意,您的更改将影响版本号,因此您确实需要采取行动。