次のタスクを達成するための最も効率的な方法を探しています...
タイプ のオブジェクトの配列がありFoo
、他のプロパティの中でFoo
も alatitude
と alongitude
プロパティがあります。多くの の配列が与えられた場合、緯度/経度が一致する を 1 つの新しい配列Foo
に抽出する必要があります。Foo
forループを使用した反復やNSPredicateを使用したソリューションなど、機能しているいくつかのソリューションを実装しましたが、これらの方法はどちらも配列を介した複数の反復を伴います。この配列には数十万のレコードが含まれる可能性があるため、1 回のパスで目的の結果を達成できるものを探しています。
編集:私がすでに取ったアプローチを説明し、問題をよりよく説明するために、いくつかの疑似コードを追加します...
NSMutableArray * matchingLocations = [[NSMutableArray alloc] initWithCapacity:0];
for (Foo * checkingFoo in fooArray) {
NSMutableArray * checkingArray = [NSArray arrayWithArray:fooArray];
[checkingArray removeObject:checkingFoo];
for (Foo * foo in checkingArray) {
// I have a method coded for comparing two coordinates
if (checkingFoo.coordinate == foo.coordinate) {
[matchingLocations addObject:checkingFoo];
}
}
}