2017-03-06 93 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)。 –

相关问题