5
我有一組數組中的詞典。我在tableview中顯示這些數據。在tableview中,我計算到每個對象的距離並顯示在單元格中。按距離排序
數據需要能夠根據遞增的距離進行排序,很明顯每個用戶位置最好的方法是什麼?我想把所有的字典分開並插入距離,然後放寬NSSortDescriptor,問題是,我太懶了。
現在,我只是用indexPath.row循環所有的數據並顯示它。
我有一組數組中的詞典。我在tableview中顯示這些數據。在tableview中,我計算到每個對象的距離並顯示在單元格中。按距離排序
數據需要能夠根據遞增的距離進行排序,很明顯每個用戶位置最好的方法是什麼?我想把所有的字典分開並插入距離,然後放寬NSSortDescriptor,問題是,我太懶了。
現在,我只是用indexPath.row循環所有的數據並顯示它。
您可以使用基於塊的比較器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;
}
}];
你應該很容易找到calculate_distance(user_position, a);
與谷歌的實現。
我已經用distanceFromLocation計算了距離:但是對於一個位置,我需要NSArray中的字典中的經度和緯度。我使用for()和NSDictionary * dict = [array objectAtIndex:i]打開了這個循環,但是我如何使用基於塊的比較器API匹配它? – MaikelS
看到我的編輯。要獲得更多幫助,您必須發佈代碼。 – vikingosegundo
更多代碼在這裏:http://pastebin.com/dndv7dk1編輯了一下,以保持它的可讀性。 – MaikelS