我在我的项目中使用Simperium和mogenerator。我已将SPManagedObject实体添加到模型中,并将其设置为其他实体的父类。对于每个实体,mogenerator会自动创建一个_< entityname> .h和_< entityname> .m文件,该文件具有多个便捷访问器。我已经修改了mogenerator构建脚本,因此每个子类都是SPManagedObject而不是NSManagedObject。实体类只是导入相应的_< entityname> .h文件。
我的问题是我在使用任何便利访问器时遇到运行时错误。例如,对于属性类型为Integer32的实体名为myInteger,类文件属性为NSNumber。 Mogenerator创建一个名为myIntegerValue的存取器。我得到的错误是myIntegerValue是一个无法识别的SPManagedObject选择器。我可以明显地解决这个问题,但这似乎表明了一个更大的问题。有任何想法吗?谢谢!
答案 0 :(得分:0)
这种问题通常是由于未能在Core Data模型编辑器中配置类名而导致的。您可能有一个类Foo
和一个实体Foo
,但它们不会自动组合在一起(它们不需要具有相同的名称)。如果不这样做,则会获得NSManagedObject
的实例,而不是子类的实例。当然,NSManagedObject
没有这些方法。
在模型编辑器中选择实体,然后查看右侧的模型检查器。确保已配置类名。