この質問は、オブジェクトの NSArray からプロパティを抽出するのと似ていますが、より深く抽出するためのものです。
簡単にするために、以下の例で参照しているオブジェクトは NSStrings です。
解決したいケースが 2 つあります。
オブジェクトを持つ NSDictionary の NSArray の NSArray
できればキー値コーディングを使用して、次の構造から、すべての「タイトル」を単一の列挙可能なリストに抽出したいと思います。
NSArray *list1 = @[
@[
@{@"title":@"A", @"description":...},
@{@"title":@"B", @"description":...},
],
@[
@{@"title":@"C", @"description":...},
@{@"title":@"D", @"description":...},
],
];
望ましい結果は、たとえば次のようになります。
@[@"A", @"B", @"C", @"D"]
オブジェクトの NSArray を持つ NSDictionary の NSArray
できればキー値コーディングを使用して、次の構造から、「タイトル」のリストを単一の列挙可能なリストに抽出したいと思います。
NSArray *list2 = @[
@{
@"titles":@[
@"A",
@"B",
],
@"descriptions":...,
},
@{
@"titles":@[
@"C",
@"D",
],
@"descriptions":...,
},
];
望ましい結果は、たとえば次のようになります。
@[@"A", @"B", @"C", @"D"]
ノート
私の実際のケースには
NSOrderedSet
、NSOrderedSet
最初のリストNSOrderedSet
のオブジェクトNSDictionary
とNSOrderedSet
2 番目のリストのオブジェクトが含まれますが、それは私が考える答えに影響を与えるべきではありません。キー値コーディングを使用したいと書きましたが、それは必須ではありません。
for (... in ...)
可能であれば、またはを書くことは避けたいだけですenumateObjectWithBlock:
。これも問題ではありませんが、オブジェクトはフェッチ要求からの NSManagedObject です。したがって、フェッチ要求を直接最適化できることはわかっていますが、それでも良い代替手段があるかどうかを知りたいです。