0

我在我的项目中使用 Simperium 和 mogenerator。我已将 SPManagedObject 实体添加到模型中,并将其设置为其他实体的父类。对于每个实体,mogenerator 自动创建一个 _<entityname>.h 和 _<entityname>.m 文件,其中包含多个便利访问器。我已经修改了 mogenerator 构建脚本,所以这些子类中的每一个都是 SPManagedObject 而不是 NSManagedObject。实体类只需导入相应的 _<entityname>.h 文件。

我的问题是使用任何便利访问器时都会出现运行时错误。例如,对于一个名为 myInteger 的具有 Integer32 类型属性的实体,类文件属性为 NSNumber。Mogenerator 创建一个名为 myIntegerValue 的访问器。我得到的错误是 myIntegerValue 是一个无法识别的 SPManagedObject 选择器。我显然可以解决这个问题,但这似乎表明存在更大的问题。有任何想法吗?谢谢!

4

1 回答 1

0

这种问题最常见的原因是未能在 Core Data 模型编辑器中配置类名。您可能有一个类Foo和一个实体Foo,但它们不会自动组合在一起(它们不需要具有相同的名称)。如果你不这样做,你会得到NSManagedObject子类的实例而不是实例。当然,NSManagedObject没有那些方法。

在模型编辑器中选择实体并查看右侧的模型检查器。确保已配置类名。

在此处输入图像描述

于 2013-08-05T21:27:12.027 回答