2017-03-06 138 views
0

我有兩個實體的模型,比如說AB。該模型從從互聯網下載的sqlite文件中加載(符合Core Data的sqlite格式;即以'Z'開頭的表和列)。iOS核心數據不執行輕量級遷移

我爲我的模型添加了新版本;向實體B引入默認值爲零的非可選整數屬性。出於某種原因,無論何時我查詢該實體,我都會得到nil結果,並且錯誤對象爲no such column ZVERSIONversion是新的屬性名稱),即使我在查詢中沒有使用version也是如此。

什麼可能是錯的?

回答

0

您可以擁有一個名爲'版本'的屬性 - 它是保留的。來自蘋果的文檔:

請注意,屬性名稱不能與NSObject或NSManagedObject的任何非參數方法名稱相同。例如,你不能給一個屬性名稱「description」。 NSObject上有數百種方法可能會與屬性名稱發生衝突 - 並且此列表可以在沒有來自框架或其他庫的警告的情況下增長。應該避免非常一般的話(如「字體」,和‘彩色’)和其與可可範式重疊(如‘isEditing’和‘objectSpecifier’)的單詞或短語

(來源:https://developer.apple.com/reference/coredata/nspropertydescription)。

「版本」是存檔用的NSObject的類方法: https://developer.apple.com/reference/objectivec/nsobject/1415151-version

而且核心數據之外創建一個SQL文件並導入它不支持蘋果並沒有公佈它的sqlite的格式,你可能不也許蘋果有一些ZVERION專欄,你不知道。

+0

'也不支持在覈心數據之外創建一個SQL文件並且不支持導入它'好吧,它可能沒有記錄,但這是可能的。見[this](https://www.raywenderlich.com/12170/core-data-tutorial-how-to-preloadimport-existing-data-updated)。 –

相關問題