按位置排序plist

时间:2013-12-03 16:23:37

标签: ios objective-c gps

我完全不熟悉Objective-CiOS Development我想要自学。我有一本我正在关注的书,它教你的第一件事就是如何用Master / Detail类型的布局填充TableView plist个项目。我认为获取用户gps位置(我确实知道该怎么做)将是一个有趣的任务,然后根据它们与用户的降序有多近,对各种gps位置plist进行排序。我最初的想法是将这些值放入Array,然后迭代该数组并将位置1比较1.我的问题是我看过这本书和各种谷歌搜索,我无法弄清楚如何实现这一目标。任何提示或示例将非常感激。

1 个答案:

答案 0 :(得分:1)

在数组中使用CLLocation对象(在我的示例中称为arr)并且您具有用户位置(在我的示例中为self.myLocation),您可以使用sortedArrayUsingComparator对它们进行排序:。

NSArray *sorted = [self.arr sortedArrayUsingComparator:^NSComparisonResult(CLLocation *obj1, CLLocation *obj2) {
        if ([obj1 distanceFromLocation:self.myLocation] > [obj2 distanceFromLocation:self.myLocation]) {
            return (NSComparisonResult)NSOrderedDescending;
        }else if ([obj1 distanceFromLocation:self.myLocation] < [obj2 distanceFromLocation:self.myLocation]){
            return (NSComparisonResult)NSOrderedAscending;
        }else{
            return (NSComparisonResult)NSOrderedSame;
        }
    }];