2015-01-15 2 views
0

Как вы сортируете NSArray, я стараюсь так, но получаю wiered результат.Сортировка результата NSArray wiered

Это код, который я использую.

- (void)fetchedData:(NSData *)responseData 
{ 
    NSLog(@"Key to sort = %@",keyToSort); 
    NSError* error; 
    NSDictionary *mainDic = [NSJSONSerialization JSONObjectWithData:responseData options:kNilOptions error:&error]; 
    NSArray *mainArr = [mainDic objectForKey:@"data"]; 
    // Sortion 
    NSSortDescriptor *valueDescriptor = [[NSSortDescriptor alloc] initWithKey:keyToSort ascending:YES]; 
    NSArray *descriptors = [NSArray arrayWithObject:valueDescriptor]; 
    NSArray *sortedArray = [mainArr sortedArrayUsingDescriptors:descriptors]; 

    for (int i = 0; i < [sortedArray count]; i++) 
    { 
     NSDictionary *subDic = [sortedArray objectAtIndex:i]; 
     [rankNumber addObject:[subDic valueForKey:keyToSort]]; // rankNumber is an Array 
    } 
} 

Выходом является

0 
1 
10 
11 
12 
2 
3 
4 
5 
6 
7 
8 
9 

Любые идеи или предложения, пожалуйста, помогите решить эту проблему

ответ

3

Используйте следующую строку:

NSSortDescriptor *valueDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"statusIdNo" ascending:YES selector:@selector(localizedStandardCompare:)]; 

вместо

NSSortDescriptor *valueDescriptor = [[NSSortDescriptor alloc] initWithKey:keyToSort ascending:YES]; 
+0

Спасибо, человек ... !!! Работал для меня :) –

+0

уверен, рад помочь! :) – nburk

+1

примет ответ через 10 мин. –

Смежные вопросы