1

NSManagedObjects の配列があります。それをアイテムと呼びましょう。Group と SubGroup という 2 つのエンティティがあります。アイテムとグループ、およびアイテムとサブグループの間に多対 1 の関係があります。したがって、アイテムは 1 つのグループに属することができ、1 つのグループ オブジェクトはそのグループ内のすべてのアイテム オブジェクトを指すことができます。

  Items
    ------
    group <<---> Group
    subgroup <<---> SubGroup

ユーザーの選択に基づいて、Db にクエリを実行し、クエリに一致するアイテムのリストを取得しました。すべてのアイテム オブジェクトを格納する resultArray と呼びましょう。Items エンティティに対してクエリが実行されました。また、resultArray 内の Item オブジェクトに関連付けられているグループとサブグループの詳細 (カウント、名前) を表示する必要もあります。

強引な方法は、一意の Group および SubGroup オブジェクトを見つけるために辞書をトラバースして使用することです。私はそれを見つけることができないだけで、これよりも良いアプローチがあると確信しています。

4

1 に答える 1

3

これはあなたが探しているものですか?

NSArray *items = ...; // your array of Item objects
NSArray *groups = [items valueForKeyPath:@"@distinctUnionOfObjects.group"];

「キーと値のコーディング」を使用して、指定されたアイテムに関連するグループの一意のリストを返します。

于 2013-06-14T12:19:03.953 に答える