2010-07-18 97 views
2

我在我的核心数据模型中有一个名为Task的实体。 Task实体具有名为date的可变形属性。 date属性的类是名为TDate(它符合NSCoding,因此是可变形属性)的类。 TDate有一个NSInteger类型的属性,称为monthNSFetchRequest谓词语法

在我的NSFetchRequest我想获取特定月份的所有Task对象。我用下面的谓词:

[NSPredicate predicateWithFormat:@"date.month == 7"]

应该让我在七月份所有Task对象。但是,使用此谓词,不会返回提取的对象。通过取出谓词,我可以确认有月份是7月(7月)的Task个对象。我的谓词语法有什么问题吗?

感谢

回答

2

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

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

+0

我最终为'date'对象的每个属性创建了单独的属性。谢谢。 – indragie 2010-07-19 04:21:24