fb-script

顯示具有 lightweight 標籤的文章。 顯示所有文章
顯示具有 lightweight 標籤的文章。 顯示所有文章

2016年9月9日 星期五

CoreData with swift 2 筆記 - Migration (1) 「全自動」lightweight migration

承接上一篇,當 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…