2

TaskCoreDataモデルで呼び出されたエンティティがあります。Taskエンティティには、と呼ばれる変換可能な属性がありますdatedate属性のクラスは、と呼ばれるクラスですTDate(NSCodingに準拠しているため、変換可能な属性です)。と呼ばれるTDateタイプのプロパティがあります。NSIntegermonth

私の場合、特定の月のすべてのオブジェクトNSFetchRequestを取得したいと思います。Task私は次の述語を使用しています:

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

これで、7月のすべてのオブジェクトが取得されます。Taskただし、この述語では、フェッチされたオブジェクトは返されません。Task述語を取り出すことで、月が7日(7月)のオブジェクトがあることを確認できます。述語構文に何か問題がありますか?

ありがとう

4

1 に答える 1

2

SQLiteバックエンドを使用している場合、変換可能なプロパティを検索することはできません。SQLiteバックエンドでは、フェッチ要求の述語がSQLに変換され、SQLiteエンジンで実行されます。SQLiteにはCocoaの知識がないため、SQLiteバックエンドに対して実行される述語は変換可能なプロパティを使用できません。

XML、バイナリ、またはメモリ内ストアを使用している場合は、オブジェクトグラフ全体がメモリ内にあり、ネイティブCocoaを使用してクエリされるため、変換可能なプロパティに対してクエリを実行する述語を使用できます。

于 2010-07-18T21:02:31.587 に答える