1.選中你的mydata.xcdatamodeld文件,選擇菜單editor->Add Model Version 比如取名:mydata2.xcdatamodel
2.設置當前版本
選擇上級mydata.xcdatamodeld ,在inspector中的Versioned Core Data Model選擇Current模版爲mydata2
3.修改新數據模型mydata2,在新的文件上添加字段及表
4.刪除原來的類文件,重新生成下類。
在appdelegate中
首先說明:我的 "CoreData_New.xcdatamodeld"---實體模型已經被我從Model.xcdatamodeld遷移到了Model2.xcdatamodeld,現在我想遷移到Model3.xcdatamodeld
開始操作之前如圖:
具體操作如下:
第一步:選中原版本操作如圖
第二步:選中Add Model Version。。。,會出現下圖
注意:你會看到,你新建的實體模型文件會依據你的上一個版本新建的。如果前面有很多版本,請選擇你想哪一個依據哪一個新建,選上默認的上一個就可以了,不然你選上更早的版本,數據肯定會丟失
第三步:點擊完成會現在下圖新的實體模型 Model3.xcdatamodeld,裏面的數據會跟原來那個一模一樣
第四步:現在就可以進行你的數據對象操作了,具體數據這裏就不進行操作了
第五步:現在我們進行選擇遷移後的版本,進入下圖第一個界面,點開Model Version,裏面會有你以前的版本,選擇你修改了數據的新版本即可
第六步:選好之後,如下圖效果
第七步:現在進行代碼操作
1,options系統默認的options是nil,點擊去API發現是個字典,所以我們需要創建一個字典對象
我再細化點:進去API之後再COMMAD+F在搜索欄輸入autom
2,選擇一直enter鍵,找到如下圖
第八步:代碼如下圖
第九步:按照上圖修改代碼即可,完成,運行成功。
其他補充,
CoreData中使用的幾個類。
(1)NSManagedObjectModel(被管理的對象模型)
相當於實體,不過它包含 了實體間的關係
(2)NSManagedObjectContext(被管理的對象上下文)
操作實際內容
作用:插入數據 查詢 更新 刪除
(3)NSPersistentStoreCoordinator(持久化存儲助理)
相當於數據庫的連接器
(4)NSFetchRequest(獲取數據的請求)
相當於查詢語句
(5)NSPredicate(相當於查詢條件)
(6)NSEntityDescription(實體結構)
(7)後綴名爲.xcdatamodel的包
裏面的.xcdatamodel文件,用數據模型編輯器編輯
編譯後爲.momd或.mom文件,這就是爲什麼文件中沒有這個東西,而我們的程序中用到這個東西而不會報錯的原因
注意:coreData是對象關係型數據庫,最大的缺點是線程關係,可以以二進制、數據庫、XML格式存儲,可以有版本遷移,這個比SQL好,SQL是數據庫存儲,對象型數據庫
"CoreData_New.xcdatamodeld"---實體模型文件
SQL 給的是字符串,CoreData給的是URL
/**coreDta步驟
* 1 創建文件模型文件
* 2 添加實體
* 3 創建實體類
* 4 生成上下文,並聯數據模型,生成數據庫
*
注意:coreData是對象關係型數據庫,最大的缺點是線程關係,可以以二進制、數據庫、XML格式存儲,可以有版本遷移,這個比SQL好,SQL是數據庫存儲,對象型數據庫
"CoreData_New.xcdatamodeld"---實體模型文件
SQL 給的是字符串,CoreData給的是URL
*/
其他:下圖感謝博主分享:http://mrydblog.com/