Simperium 和 mogenerator 便利访问器

Posted

技术标签:

【中文标题】Simperium 和 mogenerator 便利访问器【英文标题】:Simperium & mogenerator convenience accessors 【发布时间】:2013-08-05 19:47:07 【问题描述】:

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

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

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

谢谢汤姆。我确实按照simperium.com/docs/ios 的simperium 文档中的说明将类设置为SPManagedObject。感谢您的帮助。

以上是关于Simperium 和 mogenerator 便利访问器的主要内容,如果未能解决你的问题,请参考以下文章

XCode 4.6 中的 Mogenerator 和 ARC

Mogenerator 和 Xcode 4 的优点/缺点

mogenerator 不生成文件

Coredata 和 Mogenerator,coredata 标志并发问题 EXC_BAD_INSTRUCTION

如何指定 Mogenerator 生成文件的“目标”?

如何让 mogenerator 识别可转换属性的正确类型?