Ios 保存核心数据?
我有一个功能性应用程序,主要是面向数据库的。我的客户端目前正在使用该应用程序,它有许多预先存在的已保存数据(注意:这些数据都是本地数据,而不是保存在在线数据库中)。问题是,我知道当我更新数据模型时,我将不得不卸载,然后重新安装应用程序,因为否则它将由于数据模型中的不一致而崩溃。在更新我的数据模型的同时,有没有办法将数据保存在那里 我知道当我更新我的数据模型时,我将不得不卸载,然后重新安装应用程序,因为否则它将由于数据模型中的不一致而崩溃 不是真的,除非你懒得处理变化。核心数据支持将数据从数据模型的一个版本迁移到新版本,以便更新现有数据存储以使用新模型,而无需卸载或其他极端步骤。在大多数情况下,它甚至是自动的——你只需要告诉它如何应对变化。具体来说,在添加持久存储时使用Ios 保存核心数据?,ios,objective-c,cocoa-touch,cocoa,core-data,Ios,Objective C,Cocoa Touch,Cocoa,Core Data,我有一个功能性应用程序,主要是面向数据库的。我的客户端目前正在使用该应用程序,它有许多预先存在的已保存数据(注意:这些数据都是本地数据,而不是保存在在线数据库中)。问题是,我知道当我更新数据模型时,我将不得不卸载,然后重新安装应用程序,因为否则它将由于数据模型中的不一致而崩溃。在更新我的数据模型的同时,有没有办法将数据保存在那里 我知道当我更新我的数据模型时,我将不得不卸载,然后重新安装应用程序,因为否则它将由于数据模型中的不一致而崩溃 不是真的,除非你懒得处理变化。核心数据支持将数据从数据模型
选项
参数:
NSDictionary *options = @{NSMigratePersistentStoresAutomaticallyOption:@YES,
NSInferMappingModelAutomaticallyOption:@YES};
if (![psc addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:options error:&error]) {
....
}
如果您的更改仅包括以下一项或多项,则此选项有效:
- 添加或删除属性
- 更改属性的“可选”标志(前提是如果将其设置为非可选,则提供默认值)
- 重命名实体或属性
- 添加、删除或重命名实体
- 添加父实体或子实体,或将属性移动到层次结构中的不同点
- 将关系从一个更改为多个
选项
参数:
NSDictionary *options = @{NSMigratePersistentStoresAutomaticallyOption:@YES,
NSInferMappingModelAutomaticallyOption:@YES};
if (![psc addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:options error:&error]) {
....
}
如果您的更改仅包括以下一项或多项,则此选项有效:
- 添加或删除属性
- 更改属性的“可选”标志(前提是如果将其设置为非可选,则提供默认值)
- 重命名实体或属性
- 添加、删除或重命名实体
- 添加父实体或子实体,或将属性移动到层次结构中的不同点
- 将关系从一个更改为多个
如果这还不够,则核心数据通过两种不同的方式支持非自动迁移。苹果的文档中详细介绍了这一点,我在这里不再赘述。这正是我想要的。我不知道我可以自动迁移。谢谢。这正是我想要的。我不知道我可以自动迁移。谢谢