2015-11-27 1 views
-2

Я новичок в разработке iOS. Я создаю NSMutableDictionary с названием, графом, счетом. Теперь я хочу отсортировать мой NSMutableDictionary с базой Count в порядке убывания. Пожалуйста, помогите мне.Как сортировать NSMutableDictionary в iOS

self.top3_Question_Array = [[NSMutableArray alloc] init]; 

    NSMutableDictionary *item = [[NSMutableDictionary alloc] init]; 
    [item setValue: [NSString stringWithFormat: itemName] forKey:@"Title"]; 
    [item setValue: [NSNumber numberWithInteger: itemCount] forKey:@"Count"]; 
    [item setValue: [NSNumber numberWithFloat: itemScore] forKey:@"Score"]; 


    [self.top3_Question_Array addObject: item1]; 
+1

возможно дубликат [HTTP : //stackoverflow.com/questions/4558639/sort-an-nsmutabledictionar y] (http://stackoverflow.com/questions/4558639/sort-an-nsmutabledictionary) – PK20

+0

SHIDHIN, пожалуйста, голосуйте и отметьте мой ответ, если он вам полезен. Поскольку другие могут получить решение по вашему вопросу, он также может получить больше Просмотры. – user3182143

ответ

1

Я попытался ниже coding.it отлично работает для меня

NSMutableDictionary *item = [[NSMutableDictionary alloc] init]; 
[item setValue:[NSString stringWithFormat: itemName] forKey:@"Title"]; 
[item setValue: [NSNumber numberWithInteger: itemCount] forKey:@"Count"]; 
[item setValue: [NSNumber numberWithFloat: itemScore] forKey:@"Score"]; 

[top3_Question_Array addObject:item]; 


NSSortDescriptor *countDescriptor = [[NSSortDescriptor alloc] initWithKey:@"Count" ascending:NO]; 
NSArray *descriptors = [NSArray arrayWithObjects:countDescriptor, nil]; 
NSArray *sortedArrayOfDictionaries = [top3_Question_Array sortedArrayUsingDescriptors:descriptors]; 
NSLog(@"sorted array of dictionaries: %@", sortedArrayOfDictionaries); 

Также ожидается выход

sorted array of dictionaries: (
    { 
    Count = 2; 
    Score = 30; 
    Title = Cholate; 
} 
) 
+0

Спасибо, его работы ... :) –

+0

Welcome bro - :) – user3182143

0

Попробуйте этот код

NSArray *myArray = @[@{@"Title" : @"Hello", @"Count":@"3", @"Score":@"100"}, @{@"Title" : @"Hello", @"Count":@"2", @"Score":@"100"}, @{@"Title" : @"Hello", @"Count":@"1", @"Score":@"100"}, @{@"Title" : @"Hello", @"Count":@"4", @"Score":@"100"}]; 
    NSSortDescriptor *descriptor = [NSSortDescriptor sortDescriptorWithKey:@"Count" 
                   ascending:NO 
                    selector:@selector(localizedCaseInsensitiveCompare:)]; 
    NSArray *sorted_array = [myArray sortedArrayUsingDescriptors:@[descriptor]]; 
    NSLog(@"sorted_array: %@", sorted_array);