【发布时间】:2015-05-24 02:55:43
【问题描述】:
在使用 NSFetchRequest 和谓词包含由对象类定义的属性而不是实体属性的一部分时,iOS 上的 NSFetchedResultsController 和 Mac 上的 NSArrayController 之间存在不一致。
考虑由类 Foo 实现的托管对象实体 Foo。 Foo 包含一个属性 BOOL isFoo,该属性由 Foo 类实现,但不受属性支持(即不是实体 Foo 架构的一部分)。现在在 NSArrayController 的谓词中使用 isFoo 作为条件就可以了。有人会假设这意味着谓词在获取对象后应用于对象,因此命中对象类。但是,在 iOS 上,使用相同的谓词会导致 isFoo 的 NSInvalidArgumentException 未找到。在 iOS 上,谓词似乎在创建 Foo 对象之前在 NSSQLEntity 对象上进行了评估。
需要一个相当具体的跨平台项目来展示这一点,但我还没有找到说明这种差异的文档。
【问题讨论】:
标签: ios macos core-data nsfetchedresultscontroller nsfetchrequest