就简单说几句这个好了,其实也很简单
在IOS 应用中如果有个entities :table1 有两个字段:id ,name ,并且app 已经发布了
如果现在table1 需要变更成table 2 有三个字段:id,name,sex. 如何在app更新的时候保证之前core data中的数据可用呢?
- 创建新的Modle Version :Xcode 4.3->Editor->Add Model Version;
- 在根Version文件上,打开Versioned Core Data Model 中选择对应的版本;
- 修改你的
NSPersistentStoreCoordinator 初始化方案:
你以前的代码可能是这样:
if (![persist
addPersistentStoreWithType:NSSQLiteStoreType
configuration:nil
URL:storeUrl options:nil error:&err]) {
NSAssert(0,
@"persist init failed!");}
修改成:
NSDictionary *options = [NSDictionary
dictionaryWithObjectsAndKeys:
[NSNumber
numberWithBool:YES],
NSMigratePersistentStoresAutomaticallyOption,
[NSNumber
numberWithBool:YES],
NSInferMappingModelAutomaticallyOption,
nil];
if (![persist
addPersistentStoreWithType:NSSQLiteStoreType
configuration:nil
URL:storeUrl options:options
error:&err]) {
NSAssert(0,
@"persist init failed!");
}
4,其他代码上对于对应Entities 实例的修改
其他未尽之处,看苹果原文吧!本方案是有一定局限的。