最開始使用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
再次運行工程,完美