<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      CoreData數據庫結構升級和數據遷移

      app中使用了CoreData,并且在下一個版本中有實體變動,比如實體新增字段、修改字段等改動,那么app在覆蓋安裝時就要進行數據庫遷移,否則app就會crash

       

      數據庫遷移步驟

      1.選中.xcdatamodeld文件,然后點擊Xcode菜單editor->Add Model Version  比如取名:Model.xcdatamodel

       

      2.取一個Version名字,Based on model是基于現有Model文件,一般是基于上一個版本Model,如果基于早與2個版本數據可能會丟失.

       

      3.這時Model會多出一個版本xcdatamodel

       

      4.設置當前數據庫版本,選擇剛才創建的版本,在inspector中的Versioned Core Data Model選擇Current模版為Model3,基于當前最新版本xcdatamodel.

       

      5.在最新最新Model3.xcdatamodel上新增修改表表/字段/關系等,當前最新版本為Model3

      6.重新生成實體類,選中Model3.xcdatamodel

      然后下一步,選中需要重新生成的實體model.重新生成就OK,無需先把現有實體類刪除再生成.

       

      7.修改持久調度器中設置選項

      //1、創建模型對象
          //獲取模型路徑
          NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"Model" withExtension:@"momd"];
          //根據模型文件創建模型對象
          NSManagedObjectModel *model = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];
          
          
          //2、創建持久化助理
          //利用模型對象創建助理對象
          NSPersistentStoreCoordinator *store = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:model];
          
          //數據庫的名稱和路徑
          NSString *docStr = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
          NSString *sqlPath = [docStr stringByAppendingPathComponent:@"mySqlite.sqlite"];
          NSLog(@"path = %@", sqlPath);
          NSURL *sqlUrl = [NSURL fileURLWithPath:sqlPath];
          
          NSDictionary *options = @{NSMigratePersistentStoresAutomaticallyOption:@(YES),NSInferMappingModelAutomaticallyOption:@(YES)};
          //設置數據庫相關信息
          [store addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:sqlUrl options:options error:nil];
          
          //3、創建上下文
          NSManagedObjectContext *context = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSMainQueueConcurrencyType];
          
          //關聯持久化助理
          [context setPersistentStoreCoordinator:store];
          
          _context = context;

      關鍵代碼為:

      NSDictionary *options = @{NSMigratePersistentStoresAutomaticallyOption:@(YES),NSInferMappingModelAutomaticallyOption:@(YES)};
          //設置數據庫相關信息
      [store addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:sqlUrl options:options error:nil];

       

      重新運行編譯運行項目就正常可以運行.通過查看數據庫文件表和字段已經加上,員工表已經機上rDate字段.

       

      以上就iOS app CoreData數據庫升級數據遷移步驟. App升級覆蓋安裝數據就遷移了,也不會出現因修改了表而導致app Crash. App卸載安裝數據庫使用設置的當前最新版本xcdatamodel數據結構.

       

      posted on 2017-11-11 15:22  HJiang  閱讀(754)  評論(0)    收藏  舉報

      主站蜘蛛池模板: 欧美黑人添添高潮a片www| 亚洲国产另类久久久精品网站 | 日韩欧美国产aⅴ另类| 成人无码精品免费视频在线观看| 国产自拍偷拍视频在线观看 | 亚洲av永久无码天堂影院| 手机看片日本在线观看视频| 国模雨珍浓密毛大尺度150p| 日韩丝袜人妻中文字幕| 国产偷国产偷亚洲清高APP| 精品乱码一区二区三四五区| 一区二区三区黄色一级片| 最新偷拍一区二区三区| 清原| 美日韩精品一区二区三区| 奇米四色7777中文字幕| 在线观看的网站| 中文字幕久区久久中文字幕| 亚洲中文精品一区二区| 祁连县| 国产精品久久一区二区三区| 人妻丝袜AV中文系列先锋影音| 九九热在线视频免费观看| 亚欧美日韩香蕉在线播放视频| 99久久精品国产一区二区蜜芽| 男女性高爱潮免费网站| 国产精品青青在线观看爽香蕉 | 国产精品普通话国语对白露脸| 亚洲中文无码手机永久| 九九热在线视频观看这里只有精品| 国产一区二区三区的视频| 成人免费A级毛片无码网站入口| 国产亚洲精品成人av久| 国产精品无码av不卡| 久久精品国产99久久久古代| 日韩国产欧美精品在线| 国产高在线精品亚洲三区| 亚洲高潮喷水无码AV电影| 韩产日产国产欧产| 欧美熟妇xxxxx欧美老妇不卡 | 国内精品久久人妻无码不卡|