距离排序问题

时间:2012-06-26 02:05:28

标签: objective-c ios5

我对排序实体距离有点问题。举个例子,首先是13英里,第二个是2英里。这是我的代码:

NSArray *sortedArray;
        sortedArray = [objects sortedArrayUsingComparator:^(id a, id b) {
            NSString * first= [(GooglePlacesObject*)a distanceInMilesString];
            NSString * second = [(GooglePlacesObject*)b distanceInMilesString];
            return [first compare:second];
        }
        ];

        for (GooglePlacesObject * place in sortedArray) {
            Model * model = [Model fetchFromGooglePlacesObject:place];
            [self.gFoundModels addObject:model];


        }
    }

任何帮助都会很棒。

2 个答案:

答案 0 :(得分:0)

似乎你在排序字符串,所以13首先出现,因为在比较默认比较器中的字符串时,“13”小于“2”。

答案 1 :(得分:0)

据我所见,您不应该比较字符串,而是将它们转换为浮点数并返回更大的字符串。

编辑:

根据我的理解,它就是这样的

NSArray *sortedArray;
sortedArray = [objects sortedArrayUsingComparator:^(id a,id b)
{
    float first=[[(GooglePlacesObject*)a distanceInMilesString] floatValue];
    float second=[[(GooglePlacesObject*)b distanceInMilesString] floatValue];
    return first>second;
}];