承接上一篇,當 NSPersistentStoreCoordinator
在做 addPersistentStoreWithType
時,會將 .sqlite
檔和 data model 做 ORM 的動作,可是如果該 .sqlite
內資料庫的資料和 data model 對不上的時候會怎樣?這種情況會發生在裝置已經安裝過 APP 了,而專案的 data model 有做了變更,使得 data model 和 .sqlite
的內容對不上,此時在預設自動產生的程式碼中,就會將錯誤列出來並呼叫 abort()
將 APP 結束
do {
try coordinator.addPersistentStoreWithType(NSSQLiteStoreType, configuration: nil, URL: url, options: nil)
} catch {
// Report any error we got.
// ...
abort()
}
不解決了話, APP 要馬就是不能更新 data model,要馬就是瘋狂的 Crash…