gpt4 book ai didi

ios - 保存核心数据?

转载 作者:行者123 更新时间:2023-11-28 20:14:46 25 4
gpt4 key购买 nike

我有一个主要面向数据库的功能性应用程序。我的客户目前正在使用该应用程序,它有很多预先存在的已保存数据(注意:它们都是本地的,没有保存在在线数据库中)。问题是,我知道当我更新我的数据模型时,我将不得不卸载,然后重新安装应用程序,否则它会由于数据模型的不一致而崩溃。有没有办法在更新我的数据模型的同时保存数据?

最佳答案

I know when I update my data model, I will have to uninstall, then reinstall the application because otherwise it will crash due to inconsistencies in the data model.

不是真的,除非您只是懒得去处理变化。 Core Data 包括支持将数据从一个版本的数据模型迁移到一个更新的版本,这样现有的数据存储就可以更新以使用新模型,而无需卸载或其他极端步骤。在大多数情况下,它甚至是自动的——您只需告诉它处理变化。具体来说,在添加持久存储时使用 options 参数:

NSDictionary *options = @{NSMigratePersistentStoresAutomaticallyOption:@YES,
NSInferMappingModelAutomaticallyOption:@YES};


if (![psc addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:options error:&error]) {
....
}

如果您的更改仅包含以下一项或多项,则该方法有效:

  • 添加或删除属性
  • 更改属性的“可选”标志(如果您将其设为非可选,则提供默认值)
  • 重命名实体或属性
  • 添加、删除或重命名实体
  • 添加父实体或子实体,或将属性移动到层次结构中的不同点
  • 将一对一关系更改为一对多

如果您要重命名任何东西,您需要设置重命名标识符,以便 Core Data 知道如何迁移。

如果这还不够,Core Data 以几种不同的方式支持非自动迁移。这在 Apple 的文档中有一些详细介绍,我不会在这里尝试重现。

关于ios - 保存核心数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18454154/

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