今天遇到一個問題,問題描述見此 http://stackoverflow.com/q/20062215/889538。
為此進行了一番驗證。
我有一個demo工程,叫做cdnba,其資料模型如下:
然後基于cdnba建立了兩個分支:cdnba1和cdnba2,分别對資料模型進行修改。
cdnba1工程建立了cdnba 5.xcdatamodel,并安裝到模拟器上寫過資料。
接着cdnba2工程建立了cdnba 6.xcadatamodel,缺失cdnba 5.xcdatamodel檔案:
繼而,對模拟器上的cdnba進行覆寫安裝,可以發現資料得到了遷移:
為什麼在缺失cdnba 5.xcdatamodel檔案的情況下,能從cdnba1更新到cdnba2呢?
官方文檔描述資料遷移的要求是:
而非必須是精确的對應模型檔案。而模型檔案本身是xml結構描述檔案,除了一些基本資訊外,就是對各種表、各個字段的描述。何為“can use to open the existing store”的模型檔案,目前無法得到确切的驗證(無源代碼言x),但可以得到的結論是在缺失對應version model的情況下,如果modification相對lightweight,那麼是可以成功遷移資料的。