NSFetchRequest谓词语法

时间:2010-07-18 20:44:09

标签: iphone cocoa-touch core-data nspredicate nsfetchrequest

我的核心数据模型中有一个名为Task的实体。 Task实体具有名为date的可转换属性。 date属性的类是一个名为TDate的类(符合NSCoding,因此是可转换的属性)。 TDate有一个名为NSInteger的{​​{1}}类型的属性。

在我的month我希望获得特定月份的所有NSFetchRequest个对象。我正在使用以下谓词:

Task

应该在7月份获取所有[NSPredicate predicateWithFormat:@"date.month == 7"]个对象。但是,使用此谓词时,不会返回任何提取的对象。我可以通过取出谓词来确认月份为7(7月)的Task个对象。我的谓词语法有问题吗?

由于

1 个答案:

答案 0 :(得分:2)

如果您使用的是SQLite后端,则无法搜索可转换的属性。在SQLite后端,fetch请求的谓词转换为SQL并在SQLite引擎上执行。因为SQLite不了解Cocoa,所以针对SQLite后端执行的谓词不能使用可转换属性。

如果您正在使用XML,二进制或内存存储,则可以使用针对可转换属性进行查询的谓词,因为整个对象图是在内存中并使用本机Cocoa进行查询。