0

リレーションシップを介してアクセスすることにより、coredata 管理対象オブジェクトの順序付きリストを取得する方法は?

あれは:

  • 次のエンティティがあります: LIST、LIST_ITEM (「注文」フィールドを含む)、および ITEM。
  • 作業したいリストをすでに取得していると仮定します
  • 次に、コアデータの関係を使用して、関係を使用して LIST_ITEMS を取得できます。たとえば、「list1.listItems」、そしてこれらの LIST_ITEMS ごとに ITEM (「listItem1.item」) を取得できます。

しかし、LIST_ITEM の「Order」フィールドに基づいて、リストからアイテムの順序付けられたリストを LIST から本当に欲しい場合、これを行う最も簡単な方法は何ですか?

4

2 に答える 2

2

通常のフェッチ リクエストと同じように、NSSortDescriptor を使用してリレーションシップによって返されたアイテムを並べ替えることができます。例えば:

NSSortDescriptor *sortDescriptor = [[[NSSortDescriptor alloc] initWithKey:@"order" ascending:YES] autorelease];
NSArray *sortedListItems =  [list1.listItems sortedArrayUsingDescriptors:[NSArray arrayWithObject:sortDescriptor]];

ここでのキーメソッドは[NSSet sortedArrayUsingDescriptors:]

于 2011-12-05T01:19:38.650 に答える
1

私は質問を正しく理解していると思いますが、CoreData からリストを取得する最良の方法は、複合述語を作成し、その方法で項目を検索することだと思います。たとえば、特定のユーザー (別のエンティティ) について、特定の日のイベント (エンティティ) のみを探している場合です。次に、イベント エントリの NSFetchRequest を作成し、ユーザーの名前と日付を指定して (user.name==%@) AND (event.date==%@) の形式で NSPredicate を指定します。

于 2011-12-05T00:18:08.677 に答える