开发者

Sort by distance

开发者 https://www.devze.com 2023-04-13 05:47 出处:网络
I have a set of dictionaries in an array开发者_开发问答. I display this data in a tableview. In the tableview i calculate the distance to each object and display that in the cell.

I have a set of dictionaries in an array开发者_开发问答. I display this data in a tableview. In the tableview i calculate the distance to each object and display that in the cell.

The data needs to be able to sort based on ascending distance, obviously per userlocation What's the best way to approach this? I thought of picking apart all of the dictionaries and inserting the distance and then letting loose the NSSortDescriptor, problem is, i'm way too lazy for that.

Right now im just looping through all of the data with the indexPath.row and displaying it.


You can easily sort with a the block based comparator 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;
    }
}];

You should easy find an implementation for calculate_distance(user_position, a); with google.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号