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

时间:2017-03-06 07:42:00

标签: ios core-data

我有一个包含两个实体的模型,比方说AB。该模型从从Internet下载的sqlite文件加载(符合Core Data的sqlite格式;即以'Z'开头的表和列)。

我为我的模型添加了一个新版本;向实体B引入默认值为零的非可选整数属性。出于某种原因,每当我查询该实体时,我得到nil结果,并且no such column ZVERSION的错误对象(version是新属性名称),即使我没有使用{ {1}}在我的查询中。

可能出现什么问题?

1 个答案:

答案 0 :(得分:0)

您可以拥有名为“版本”的属性 - 它是保留的。来自apple的文档:

  

请注意,属性名称不能与NSObject或NSManagedObject的任何无参数方法名称相同。例如,您不能为属性指定名称“description”。 NSObject上有数百个可能与属性名称冲突的方法 - 这个列表可以在没有框架或其他库的警告的情况下增长。您应该避免使用非常一般的单词(如“font”和“color”)以及与Cocoa范例重叠的单词或短语(例如“isEditing”和“objectSpecifier”)。

(来源:https://developer.apple.com/reference/coredata/nspropertydescription

'version'是归档中使用的NSObject的类方法: https://developer.apple.com/reference/objectivec/nsobject/1415151-version

不支持在核心数据之外创建SQL文件并导入它。 Apple没有发布它的sqlite格式,你可能不符合它。也许Apple有一些你不知道的ZVERION专栏。