我有兩個實體的模型,比如說A
和B
。該模型從從互聯網下載的sqlite文件中加載(符合Core Data的sqlite格式;即以'Z'開頭的表和列)。iOS核心數據不執行輕量級遷移
我爲我的模型添加了新版本;向實體B
引入默認值爲零的非可選整數屬性。出於某種原因,無論何時我查詢該實體,我都會得到nil
結果,並且錯誤對象爲no such column ZVERSION
(version
是新的屬性名稱),即使我在查詢中沒有使用version
也是如此。
什麼可能是錯的?
我有兩個實體的模型,比如說A
和B
。該模型從從互聯網下載的sqlite文件中加載(符合Core Data的sqlite格式;即以'Z'開頭的表和列)。iOS核心數據不執行輕量級遷移
我爲我的模型添加了新版本;向實體B
引入默認值爲零的非可選整數屬性。出於某種原因,無論何時我查詢該實體,我都會得到nil
結果,並且錯誤對象爲no such column ZVERSION
(version
是新的屬性名稱),即使我在查詢中沒有使用version
也是如此。
什麼可能是錯的?
您可以擁有一個名爲'版本'的屬性 - 它是保留的。來自蘋果的文檔:
請注意,屬性名稱不能與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專欄,你不知道。
'也不支持在覈心數據之外創建一個SQL文件並且不支持導入它'好吧,它可能沒有記錄,但這是可能的。見[this](https://www.raywenderlich.com/12170/core-data-tutorial-how-to-preloadimport-existing-data-updated)。 –