我在我的项目中使用了Simperium和mogenerator。我已经将SPManagedObject实体添加到模型中,并将其设置为其他实体的父类。对于每个实体,mogenerator会自动创建一个_.h和_.m文件,该文件有几个方便的访问器。我已经修改了mogenerator构建脚本,以便这些子类中的每个子类都是SPManagedObject而不是NSManagedObject。实体类只需导入相应的_.h文件。
我的问题是,在使用任何方便的访问器时,我都会遇到运行时错误。例如,对于具有名为myInteger的Integer32类型属性的实体,类文件属性为NSNumber。Mogenerator创建一个名为myIntegerValue的访问器。我得到的错误是myIntegerValue是一个无法识别的SPManagedObject选择器。我显然可以解决这个问题,但这似乎表明了一个更大的问题。有什么想法吗?谢谢!
发布于 2013-08-06 05:27:12
这种问题最常见的原因是未能在Core数据模型编辑器中配置类名。您可能有一个类Foo
和一个实体Foo
,但它们不会自动组合在一起(不要求它们具有相同的名称)。如果你不这样做,你会得到NSManagedObject
的实例而不是你的子类的实例。当然,NSManagedObject
没有这些方法。
在模型编辑器中选择实体并查看右侧的模型检查器。确保配置了类名。
https://stackoverflow.com/questions/18066467
复制相似问题