CoreData 的自动平滑升级(Automatic Lightweight Migration)
2013-01-22 10:59
281 查看
就简单说几句这个好了,其实也很简单
在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:storeUrloptions: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:storeUrloptions:options error:&err])
{
NSAssert(0, @"persist init failed!");
}
4,其他代码上对于对应Entities 实例的修改
其他未尽之处,看苹果原文吧!本方案是有一定局限的。
在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:storeUrloptions: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:storeUrloptions:options error:&err])
{
NSAssert(0, @"persist init failed!");
}
4,其他代码上对于对应Entities 实例的修改
其他未尽之处,看苹果原文吧!本方案是有一定局限的。
相关文章推荐
- CoreData 的自动平滑升级(Automatic Lightweight Migration)
- CoreData 的自动平滑升级(Automatic Lightweight Migration)
- CoreData 的自动平滑升级(Automatic Lightweight Migration)
- coredata lightweight migration 轻量级自动迁移
- coredata lightweight migration 轻量级自动迁移
- 成功通过WINXP微软验证,自动升级系统补丁
- 步步为营VS 2008 + .NET 3.5(3) - C# 3.0新特性之Automatic Properties(自动属性)、Object Initializers(对象初始化器)、Collection Initializers(集合初始化器)和Ext
- 如何通过adb command 完成自动SD卡升级?
- Nginx平滑升级和平滑重启
- 客户端自动升级的一个代码例子【C/S】
- CoreData(数据库升级 )版本迁移-iOS App升级安装
- WinForm使用WebService自动升级
- 高性能Web服务器Nginx的配置与部署研究(14)平滑升级你的Nginx
- winform 自动升级用到 (未完待整理)
- 实现Winform应用系统自动升级 ---------关于服务器端配置文件以实现的一点总结
- Database first with EntityFramework (Migration)安装和升级
- JS平滑无缝滚动实现———实现首页广告自动滚动效果(附实例)
- Oracle 10g 统计信息自动收集功能(automatic statistics gathering)学习总结
- 在WinForm中使用WebServices来实现软件自动升级(AutoUpdate)(C#)
- Java程序如何自动在线升级