我对排序实体距离有点问题。举个例子,首先是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];
}
}
任何帮助都会很棒。
答案 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;
}];