gpt4 book ai didi

iphone - CoreData 中的不同模型版本

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:13:19 25 4
gpt4 key购买 nike

我正在对 iOS 应用程序进行重大更新。假设我们有两个分支,develop 包含当前 App Store 上的内容,feature/new_version 包含主要更新。

feature/new_version 有很多模型更改,因此那里有一个新的模型版本可以添加/删除实体、属性等。另一方面,我们有一些小的改进和develop 中的错误修复,这也导致了新模型版本的创建(这些更新也已提交到 App Store)。

现在我遇到了两个数据模型截然不同的分支。问题是:如果我将“缺失”属性添加到 feature/new_version 模型,当我将主要更新提交到 App Store 时,核心数据是否足够智能以进行自动轻量级迁移?或者我应该下载 develop 中使用的数据模型并基于该版本在 feature/new_version 中创建一个新模型版本并重新添加/删除 self 第一次以来的所有更改创建分支?

最佳答案

自动轻量级迁移是否有效取决于从旧模型到新模型的变化的性质。在您的情况下,当前发布的版本与您的 new_version 分支中的版本之间的差异。

如果变化只是增加新的属性,没问题,这就是自动轻量级迁移设计的场景。如果它们更复杂,您更有可能需要一些替代迁移方案。您没有详细说明更改,但既然您说新版本“添加/删除实体” 自动迁移听起来不太可能。如果模型发生结构性变化,添加“缺失的”属性将无济于事。 Core Data 不介意简单的迁移,但不会推断模型结构的重构。

只要它包含您需要的一切,您如何创建合并模型并不重要。如果只需要添加新属性,就没有理由重新开始。重要的是生成的模型是正确的,而不是你实现它所采取的步骤。

判断自动轻量级迁移是否有效的最简单方法通常是在调试版本上尝试它,看看会发生什么。在设备上安装当前发布的版本,创建一些数据,然后使用 Xcode 安装新版本。添加持久存储时,确保 NSMigratePersistentStoresAutomaticallyOptionNSInferMappingModelAutomaticallyOption 都是 YES。如果有效,那就太好了。如果不是,Core Data 会在模型需要的不仅仅是微不足道的更改时提供替代方案。

关于iphone - CoreData 中的不同模型版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17174524/

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