gpt4 book ai didi

ios - 如何重新创建 xcdatamodeld

转载 作者:行者123 更新时间:2023-11-28 22:48:28 29 4
gpt4 key购买 nike

我正在维护一个已经在 AppStore 上线了几个月的应用程序。 我的应用程序使用 Core Data,但不知何故我设法丢失了我的 xcdatamodel 的所有以前版本。

我希望执行轻量级迁移。我需要做的就是向我的实体之一添加一个属性。因此,我遵循了创建模型版本的正确步骤。

显然,我修改了原来的xcdatamodel。因此,当我测试迁移时,它失败并显示错误代码=134130“无法找到源商店的模型”。由于当设备/模拟器上没有 sqlite 文件时应用程序运行良好,我得出结论,原始 xcdatamodel 已被修改

假设到目前为止我的逻辑成立,我如何创建一个 xcdatamodel 来匹配我用户设备上的 sqlite 文件。他们不能接受丢失数据。

谢谢。

最佳答案

根据苹果核心数据versioning guidelines , 两个版本的 Core Data 在以下情况下被视为相同:

  • 对于每个实体,以下属性必须相等:name、parent、isAbstract 和 properties。不比较 className、userInfo 和验证谓词。

  • 对于每个实体中的每个属性,以下属性必须相等:name、isOptional、isTransient、isReadOnly,对于属性 attributeType,对于关系 destinationEntity、minCount、maxCount、deleteRule 和 inverseRelationship。

如果您当前的 xcdatamodel 是一个全新的文件,我认为您所做的任何事情都不会使原始版本和当前版本相匹配。但是,如果当前版本只是意外修改的原始版本,您可以查看旧生成的模型文件并尝试找出更改的内容。

例如:在您的模型上有一个“NSString *age”属性,但在您当前的 xcdatamodel 上,该属性是“NSNumber *age”。

另外,请记住,您看到的错误可能是由生成的模型文件与数据库不同步引起的,因此请尝试重新创建它们。

关于ios - 如何重新创建 xcdatamodeld,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12576349/

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