iOS核心数据不执行轻量级迁移



我有一个带有两个实体的模型,例如 AB。该模型是从从Internet下载的SQLITE文件(符合核心数据的SQLite格式;即以'z'开头的表和列)的。

我为我的模型添加了一个新版本;向实体B引入具有默认值零值的非访问整数属性。由于某种原因,每当我查询该实体时,我都会得到nil结果,即使我在查询中不使用versionno 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列。

最新更新