ios - 在 2020 年在 Core Data 中添加新实体是否需要新模型版本或迁移

标签 ios core-data core-data-migration xcdatamodel

过去,如果 App 已经在 App Store 中,则将实体添加到 Core Data 中的模型需要新版本的模型。

参见 this answer还有this one .

不过,我相信 Apple 已经简化了迁移过程,因此现在您可以做很多事情,例如在不更改模型版本的情况下添加属性,甚至可以进行轻量级迁移。

在 2020 年底,您是否仍然需要在为 App Store 中的上线应用程序的模型添加新实体时创建新的模型版本,或者您是否可以直接添加它而不做任何其他操作? App的下一个版本当然会有更高的版本。问题是数据模型是否必须有新版本或也需要迁移?

提前感谢您的任何建议。

最佳答案

不,某些操作不需要添加新的模型版本。这包括但不限于添加实体或向实体添加属性。

如果您将新的应用程序版本推送到 App Store 并且用户下载了它,iOS 将检查应用程序当前数据库架构和应用程序新数据库架构之间是否存在任何差异。如果是这样,它将执行轻量级迁移以反射(reflect)更改。

我没有找到关于这个主题的书面文档,但上面有一段来自 WWDC22 的视频:https://developer.apple.com/wwdc22/10120 (6 分 42 秒)。

关于ios - 在 2020 年在 Core Data 中添加新实体是否需要新模型版本或迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64904617/

相关文章:

ios - 如何在 iOS 中获取 HM-10 Bluetooth LE 的特性

objective-c - 支持 iOS 4.2 及更高版本

ios - 修改核心数据模型每次都需要新版本?

swift - 防止升级用户时 CoreData 崩溃

ios - 在 XCode Instruments 中,有没有办法在运行时通过 Javascript 找到模拟器的 iOS 版本

iOS 将电影从相机保存到核心数据

iphone - Core Data 如何存储 NSData?

iphone - 用核心数据实现 "Did you mean?"

ios - 搜索栏实现不起作用

ios - 让 Swift 4.2 从以前的 Objective-C 构建加载核心数据存储