2

最近追加されたレコードを CoreData から取得したいと考えています。NSPredicate を使用してそれが可能かどうか疑問に思っていましたか? もしそうなら、どのように?

たとえば、Department と Staff の間に 1 対多の関係があり、最近採用された Staff レコードを取得したいとします。Staff テーブルには、使用できる日付フィールドがあります。

すべての Staff レコードを取得してから、適切なレコードを探したくありません。CoreData は関連するレコードを NSSet に格納することに注意してください。

4

1 に答える 1

5

述語があなたがここで求めていることをすることはないと思います。代わりに、日付を降順でソートするようにソート記述子が設定された単一のレコードをフェッチすることができます。以下を含めるようにフェッチ要求を変更する必要があります。

NSSortDescriptor *dateSort = [[NSSortDescriptor alloc] initWithKey:@"date" ascending:NO];
[fetchRequest setSortDescriptors:[NSArray arrayWithObject:dateSort]];
[fetchRequest setFetchLimit:1];

これにより、最新の日付属性を持つスタッフオブジェクトが取得されます。SQLiteストアを使用している場合、並べ替えはSQLiteレイヤーで行われ、単一の結果のみがフェッチされることに注意してください。

于 2010-04-06T05:36:59.930 に答える