gpt4 book ai didi

ios - 由于核心数据迁移,应用程序在从应用程序商店更新后崩溃

转载 作者:行者123 更新时间:2023-11-28 15:43:09 26 4
gpt4 key购买 nike

我的应用在第一个版本 v1 中运行完美。

在第二个版本 v2 中,我在进行核心数据迁移时犯了一个错误 - 我不小心在我的核心数据中为实体(之前它是空的)提供了一个重命名 ID。由于该应用程序在更新时崩溃,但在新下载 v2 版本时它可以正常工作。

现在,我应该在我的下一个版本 v3 中做什么来修复这个崩溃?

如果我将实体的重命名 ID 替换为空,则可以从 v1 -> v2 -> v3 更新应用程序。

但如果用户刚下载 v2,它会再次崩溃。

请给我一些解决此问题的方法。提前致谢。

最佳答案

使用核心数据轻量级迁移。轻量级迁移在应用程序开发的早期阶段特别方便,此时您可能会频繁更改托管对象模型,但又不想一直重新生成测试数据。您可以迁移现有数据,而无需为用于创建需要迁移的商店的每个模型版本创建自定义映射模型。

核心数据必须能够推断映射

要执行自动轻量级迁移,Core Data 需要能够在运行时自行找到源和目标托管对象模型。 Core Data 在 NSBundle 的 allBundles 和 allFrameworks 方法返回的包中寻找模型。如果您将模型存储在别处,则必须按照在无法自动找到模型时使用迁移管理器中描述的步骤进行操作。然后,Core Data 必须分析对持久实体和属性的架构更改,并生成推断的映射模型。

要使 Core Data 能够生成推断映射模型,更改必须符合明显的迁移模式,例如:

  • 简单添加新属性
  • 删除一个属性
  • 非可选属性变为可选
  • 可选属性变为非可选属性,并定义默认值值(value)
  • 重命名实体或属性(property)

来源:https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/CoreDataVersioning/Articles/vmLightweightMigration.html

关于ios - 由于核心数据迁移,应用程序在从应用程序商店更新后崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43464494/

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