我有一个核心数据类 SSSLicense,它具有名称和类型等属性。它继承自一个名为 SSSArchivableEntity 的抽象实体,该实体具有一个名为 isArchived 的布尔属性(等等)。
我已经从数据库中获取了完整的许可证实体集,现在正在尝试根据类型和 isArchived 标志进行过滤。然而,尽管我的谓词有很多变化,但我无法得到有效的结果。
以下是相关代码:
NSSet *licenses = [person licenseList] ;
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(licenseType like %@) AND (isArchived == NO)",
lType];
NSSet *filteredLicenses = [licenses filteredSetUsingPredicate:predicate];
如果我将谓词更改为使用 SSSLicense 的另一个属性,例如名称(而不是 isArchived),则谓词有效。我什至向 SSSLicense 添加了一个简单的布尔属性并成功使用它进行过滤。
似乎它与 isArchived 是抽象实体的属性这一事实有关。我需要做一些特别的事情来过滤继承的属性吗?
谢谢!