Я хотел бы отсортировать массив с вычислением расстояния между текущим местоположением и местоположением точки на карте. Я сделал свой код, как показано ниже, и я смог получить результат расстояния. Могу ли я узнать, как я могу отсортировать по расстоянию asc (рядом со мной) для моего случая, как показано ниже?
[self.manager GET:@"http://www.samplewebsite.net/api" parameters:nil progress:nil success:^(NSURLSessionTask *task, id responseObject) {
aryNearMeList = responseObject;
for (int i = 0; i < aryNearMeList.count; i++) {
CLLocation *merchantLocation = [[CLLocation alloc] initWithLatitude:[[_serverDataArr [i]valueForKey:@"latitude"] doubleValue] longitude:[[_serverDataArr [i]valueForKey:@"longitude"] doubleValue]];
CLLocationDistance meters = [merchantLocation distanceFromLocation:location];
NSString *abc = [NSString stringWithFormat:@"~ %.2f km", meters / 1000.0];
NSLog(@"243 %@",abc); //WILL RETURN DISTANCE HERE. HOW CAN I SORT BY DISTANCE ASC??
}
NSSortDescriptor *sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"abc" ascending:YES
comparator:^NSComparisonResult(id obj1, id obj2) {
float value1 = [obj1 floatValue];
float value2 = [obj2 floatValue];
if (value1 == value2) {
return NSOrderedSame;
} else if (value1 > value2) {
return NSOrderedDescending;
} else {
return NSOrderedAscending;
}
}];
_serverDataArr = [aryNearMeList sortedArrayUsingDescriptors:@[sortDescriptor]];
dispatch_async(dispatch_get_main_queue(), ^{
[self.tableView reloadData];
});
} failure:^(NSURLSessionTask *operation, NSError *error) { }