ios - 将新属性添加到现有实体时是否需要迁移核心数据?

标签 ios objective-c swift core-data core-data-migration

<分区>

我读过几篇文章,指出只要实体、属性或关系发生变化,就应该进行轻量级迁移。但是前几天和学长交流的时候,他问我在新增属性的时候是不是真的需要轻量级迁移。这让我很困惑。我知道在对 Core Data 模型进行任何更改之前,我们应该始终创建一个新版本。那么这是否意味着版本控制与迁移相同。如果我们重命名现有属性,是否需要迁移?如果有人能帮助我,我将不胜感激。

最佳答案

Do we need migration when we add a new attribute to an existing entity?

迁移是必需的,但不是您自己创建的。 automatic lightweight migration 完美涵盖了添加属性.当您将属性添加到核心数据架构并打开启用了轻量级迁移的现有商店时,现有商店将被无缝迁移。

根据经验,在向现有实体添加新实体或属性时,您可以使用自动轻量级迁移。对于现有属性的类型更改和重命名,您很可能需要创建一个 heavyweight migration否则在使用新架构打开现有商店时数据将会丢失。

Is migration and versioning the same thing

没有。当迁移应用于现有商店时,版本控制指的是核心数据模式。当您要更改现有实体或关系时,您应该添加一个新的模式版本。此外,当您使用此模式作为目标创建重量级迁移时,在更改模式中的任何内容之前添加新模式很重要。否则迁移将中断,因为它不再有匹配的目标。

关于ios - 将新属性添加到现有实体时是否需要迁移核心数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66022029/

相关文章:

android - 碰撞后如何在 Lua(使用 Corona SDK)中使对象处于非 Activity 状态?

ios - 在 iOS 中播放 Stream .m3u8 音频文件

ios - 使用 CoreData 和 swift 在数据库中搜索数据

iphone - objc_setAssociatedObject 在 iPhone 模拟器中不可用

iphone - UITableView (Section)Footer 总是最大化宽度

iOS:如何指定用于将主机名解析为 IP 地址的 DNS?

ios - Swift - 单元格在更新正确数据之前显示错误数据

iphone - 不让 UIButton 拖到 Circle 外

php - 任何人都可以找到此 POST NSMutableURLRequest 到 PHP 脚本中的错误吗?

iphone - 在 Objective-C 中执行一系列 SOAP 请求的更好方法