2

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

在我的NSFetchRequest我想获得Task特定月份的所有对象。我正在使用以下谓词:

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

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

谢谢

4

1 回答 1

2

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

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

于 2010-07-18T21:02:31.587 回答