我的核心数据模型中有一个名为Task
的实体。 Task
实体具有名为date
的可转换属性。 date
属性的类是一个名为TDate
的类(符合NSCoding,因此是可转换的属性)。 TDate
有一个名为NSInteger
的{{1}}类型的属性。
在我的month
我希望获得特定月份的所有NSFetchRequest
个对象。我正在使用以下谓词:
Task
应该在7月份获取所有[NSPredicate predicateWithFormat:@"date.month == 7"]
个对象。但是,使用此谓词时,不会返回任何提取的对象。我可以通过取出谓词来确认月份为7(7月)的Task
个对象。我的谓词语法有问题吗?
由于
答案 0 :(得分:2)
如果您使用的是SQLite后端,则无法搜索可转换的属性。在SQLite后端,fetch请求的谓词转换为SQL并在SQLite引擎上执行。因为SQLite不了解Cocoa,所以针对SQLite后端执行的谓词不能使用可转换属性。
如果您正在使用XML,二进制或内存存储,则可以使用针对可转换属性进行查询的谓词,因为整个对象图是在内存中并使用本机Cocoa进行查询。