按距离sorting

我有一组数组中的字典。 我在tableview中显示这些数据。 在tableview中,我计算到每个对象的距离,并显示在单元格中。

数据需要能够根据递增的距离进行sorting,很明显,每个用户位置的最佳方法是什么? 我想把所有的字典分开,插入一段距离,然后松开NSSortDescriptor,问题是,我太懒了。

现在,我只是用indexPath.row循环所有的数据并显示它。

您可以轻松地使用基于块的比较器API进行sorting。

NSArray *rawData = [NSArray arrayWithContentsOfFile:pathDoc]; rawData = [rawData sortedArrayUsingComparator: ^(id a, id b) { CLLocationDistance dist_a= [[a objectsForKey:@"coordinate"] distanceFromLocation: userPosition]; CLLocationDistance dist_b= [[b objectsForKey:@"coordinate"] distanceFromLocation: userPosition]; if ( dist_a < dist_b ) { return NSOrderedAscending; } else if ( dist_a > dist_b) { return NSOrderedDescending; } else { return NSOrderedSame; } }]; 

你应该很容易findcalculate_distance(user_position, a); 与谷歌。