Mai*_*elS 5 cocoa-touch objective-c ios
我有一组数组中的字典.我在tableview中显示这些数据.在tableview中,我计算每个对象的距离并在单元格中显示.
数据需要能够根据上升距离进行排序,显然每个用户位置的最佳方法是什么?我想要拆开所有字典并插入距离,然后放开NSSortDescriptor,问题是,我太懒了.
现在我只是使用indexPath.row循环遍历所有数据并显示它.
Vik*_*ica 13
您可以使用基于块的比较器api轻松排序.
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;
}
}];
Run Code Online (Sandbox Code Playgroud)
您应该很容易找到calculate_distance(user_position, a);谷歌的实现.
| 归档时间: |
|
| 查看次数: |
2086 次 |
| 最近记录: |