重複を含む2つの配列をマージする方法を知っています:これが私がやりたいことを説明するための例です:
// Here is some dictionary which contain an unique "id" key.
NSDictionary *dico1 = [NSDictionary dictionaryWithObjectsAndKeys:
@"11111111", @"id", nil];
NSDictionary *dico2 = [NSDictionary dictionaryWithObjectsAndKeys:
@"22222222", @"id", nil];
NSDictionary *dico3 = [NSDictionary dictionaryWithObjectsAndKeys:
@"33333333", @"id", nil];
NSDictionary *dico4 = [NSDictionary dictionaryWithObjectsAndKeys:
@"44444444", @"id", nil];
NSDictionary *dico5 = [NSDictionary dictionaryWithObjectsAndKeys:
@"55555555", @"id", nil];
// And here is duplicates of the 2nd and 3td dictionary.
NSDictionary *dico2_bis = [NSDictionary dictionaryWithObjectsAndKeys:
@"22222222", @"id", nil];
NSDictionary *dico3_bis = [NSDictionary dictionaryWithObjectsAndKeys:
@"33333333", @"id", nil];
そして今、私はそれらの辞書のいくつかを含む配列を持っています:
NSArray *currentArray = [NSArray arrayWithObjects:
dico1, dico2, dico3, nil];
そして、これが、重複した新しい「データ」を含む最初の配列とマージされる新しい配列です。
NSArray *tempArray = [NSArray arrayWithObjects:
dico2_bis, dico3_bis, dico4, dico5, nil];
最終段階での私の目標は、すべての重複が削除されたすべての辞書を含む配列を作成することです。
NSArray *finalArray = [NSArray arrayWithObjects:
dico1, dico2, dico3, dico4, dico5, nil];
最も効率的なソリューションがどのようになっているのかわかりません。マージは高速である必要があります。高速列挙またはブロックベースの列挙アルゴリズム、あるいはNSPredicate実装を実装する必要がありますか?NSPredicateについてはすでに検索しましたが、他の配列で配列をフィルタリングする方法が見つかりません=/
助けていただければ幸いです。