我有一个带有两个实体的模型,例如 A
和 B
。该模型是从从Internet下载的SQLITE文件(符合核心数据的SQLite格式;即以'z'开头的表和列)的。
我为我的模型添加了一个新版本;向实体B
引入具有默认值零值的非访问整数属性。由于某种原因,每当我查询该实体时,我都会得到nil
结果,即使我在查询中不使用version
,no such column ZVERSION
的错误对象(version
是新属性名称)。
可能是什么问题?
您可以拥有一个名为'版本'的属性 - 它是保留的。来自苹果的文档:
请注意,属性名称不能与Nsobject或NSManageBject的任何NO-参数方法名称相同。例如,您不能将属性命名为"描述"。Nsobject上有数百种可能与属性名称相抵触的方法,并且此列表可以在没有框架或其他库的警告的情况下增长。您应该避免使用非常通用的单词(例如"字体"one_answers"颜色")以及与可可范式重叠的单词或短语(例如" ISEDITION"one_answers" objectspecifier")。
(来源:https://developer.apple.com/reference/coredata/nspropertydescription)
'版本'是用于归档中使用的nsobject的类方法:https://developer.apple.com/reference/objectivec/nsobject/1415151-version
也不支持在核心数据之外创建一个SQL文件,并导入它。Apple不会发布其SQLite格式,您可能不符合它。也许苹果有一些您不知道的Zverion列。