iOS_SN_CoreData數據遷移

最開始使用CoreData的時候碰到一個問題,就是當增長一個字段的時候再次運行APP會發生崩潰,一開始不知道什麼緣由,只知道是裏面的表結構發生改變,就從新刪掉APP再次安裝是能夠運行的,這樣調試完後以爲不太靠譜,用戶不可能刪掉APP以後再次安裝,上網查了一下是由於要進行數據遷移。數據庫

Coredata提供了輕量級的自動數據遷移,好比如下三個狀況會自動進行:app

1.簡單的增長一個字段工具

2.把一個必填字段改成可選字段調試

3.把可選字段改成必填字段(但必定要定義默認值)blog

數據遷移步驟:it

一、升級數據庫模型:選中你的CoreDataTest.xcdatamodeld文件,選擇菜單editor->Add Model Version 好比取名:CoreDataTest2.xcdatamodelio

二、設置當前版本:選擇上級CoreDataTest.xcdatamodeld ,在inspector中的Versioned Core Data Model選擇Current模版爲CoreDataTest2(inspector界面,即爲XCode工做區右側工具欄)class

三、修改新數據模型CoreDataTest2,在新的文件上添加,修改或刪除字段及表model

四、在程序啓動時添加以下代碼:程序

NSDictionary *optionsDictionary = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:YES],
NSMigratePersistentStoresAutomaticallyOption, [NSNumber numberWithBool:YES],
NSInferMappingModelAutomaticallyOption, nil];

if (![persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType
configuration:nil
URL:storeUrl
options:optionsDictionary
error:&error]) {
NSLog(@」failed to add persistent store with type to persistent store coordinator」);
}

 五、重啓一下XCode

 

再次運行工程,完美

相關文章
相關標籤/搜索