2012-12-06 44 views
1

我歌廳堅持在這裏 我有經緯度的陣列這裏,從JSON解析得到它如何對數組進行排序?

Arr_Lat=[[[[main valueForKey:@"responseData"]valueForKey:@"results"]valueForKey:@"lat"] copy]; 
Arr_Long=[[[[main valueForKey:@"responseData"]valueForKey:@"results"]valueForKey:@"lng"] copy]; 

我不得不計算出當前的位置和經緯度和長期指標的陣列明智和之間的距離在存儲到數組......

CLLocation *currLoc = [[CLLocation alloc] initWithLatitude:appDel.curr_lat longitude:appDel.curr_long]; 

CLLocation *destLoc = [[CLLocation alloc] initWithLatitude:appDel.str_lat longitude:appDel.str_long]; 

distance = [destLoc distanceFromLocation:currLoc]/1000; 

DistStr = [[NSMutableString alloc]initWithFormat:@" %0.3f",distance]; 


    [appDel.Arr_distance addObject:DistStr]; 

我有點像這樣

的距離

我不得不提前顯示標題,地址和距離,但地址和距離都無法比擬的 我想按升序排列的距離排序地址....

感謝您的幫助...... ...........

+0

您的地址標題存儲在哪裏? –

+0

我從Jeson解析得到這個Arr_address = [[[[main valueForKey:@「responseData」] valueForKey:@「results」] valueForKey:@「addressLines」] copy]; Arr_title = [[[[main valueForKey:@「responseData」] valueForKey:@「results」] valueForKey:@「titleNoFormatting」] copy]; –

+0

與Arr_lat和Arr_long –

回答

0

Arr_distance是NSString,我認爲這樣排序是不正確的。 試試這個:

sortedFloats = [appDel.Arr_distance sortedArrayUsingComparator:^(NSString *dis1, NSString *dis2){ 
    if ([dis1 floatValue] < [dis2 floatValue]) { 
     return (NSComparisonResult)NSOrderedDescending; 
    } else { 
     return (NSComparisonResult)NSOrderedAscending; 
    } 
}];] 

您可能需要爲需要交換NSOrderedDescending或NSOrderedAscending。