NSSetを使用して次のコンステレーションがあります。
NSSet {
NSDictionary {
"Unique-Identifier-Key": Unique Value
"Key2": ValueABC
"Key3": ValueDEF
}
NSDictionary {
"Unique-Identifier-Key": Unique Value
"Key2": ValueFGH
"Key3": ValueJKL
}
NSDictionary {
"Unique-Identifier-Key": Unique Value
"Key2": ValueRST
"Key3": ValueXYZ
}
}
NSSetから一意の値で1つの辞書を取得する方法を探しています。そのNSSetにはかなり多くのNSDictionariesがあるので、私は最高のパフォーマンスを発揮する方法を探しています。
次のように使っ(NSSet *)objectsPassingTest:(BOOL (^)(id obj, BOOL *stop))predicate
てみませんか?
NSString *idSearched = ...;
NSSet *results = [MySet objectsPassingTest:^(id obj,BOOL *stop){
if ([obj valueForKey:@"Unique-Identifier-Key"] == idSearched) return YES;
else return NO;
}];
これは最もパフォーマンスの高いソリューションですか?NSSetは、オブジェクトの検索においてNSArrayよりも優れたパフォーマンスを発揮することを読んだときにNSSetを使用しました。そして、オブジェクトの順序付けられたシーケンスは必要ありません。