我正在寻找完成以下任务的最有效方法......
我有一个类型的对象数组Foo
,除其他属性外,Foo
还有一个latitude
和一个longitude
属性。给定许多 's 的数组Foo
,我需要将Foo
具有匹配 lat / long 的 's 提取到一个新数组中。
我已经实现了几个可行的解决方案,包括使用 for 循环进行迭代,以及使用 NSPredicate 的解决方案,但是这两种方法都涉及通过数组的多次迭代。这个数组可能有数十万条记录,所以我正在寻找我可以使用的东西,它可以一次性达到预期的结果。
编辑:添加一些伪代码来描述我已经采取的方法并更好地描述问题......
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];
}
}
}