核心数据NSPredicate按实体类过滤?

时间:2012-04-02 22:40:15

标签: class core-data nspredicate nsfetchrequest nsentitydescription

如何创建NSPredicate按类Contact的实体进行过滤?

NSPredicate check for kind of object class崩溃的解决方案:

[NSPredicate predicateWithFormat:@"person.class == %@", [Contact class]];

*** Terminating app due to uncaught exception 'NSInvalidArgumentException',
    reason: 'keypath person.class not found in entity <NSSQLEntity User id=12>'

背景

我有核心数据实体User(应用用户)&amp; Contact(地址簿联系人),Person的两个孩子(抽象实体)。 Person有许多identities,可以是emailsphonesusernames

要创建类似文字消息的预先输入,我想为NSFetchRequest实体创建一个Identity person属于Contact类。

2 个答案:

答案 0 :(得分:2)

你可能会混淆一些事情。您指出的答案是关于过滤UIView数组的谓词。核心数据中的谓词以稍微不同的方式工作。

要获得所需结果,只需将获取请求的entity设置为@"Contact"

答案 1 :(得分:0)

如果您在联系人中有必填字段,则可以过滤该字段不为空。如果Contact中没有必填字段(不在Person中),则可以在该字段上添加虚拟必填字段和过滤器。

相关问题