iPhone Obj C - сортировка изменяемого массива словарей - отображать строку, но сортировать по значению - PullRequest
3 голосов
/ 27 января 2010

У меня есть NSMutableArray с 30 словарями внутри него. Каждый содержит имя и значение. В настоящее время у меня есть имена отсортированы так, чтобы показать в виде таблицы в алфавитном порядке. Тем не менее, я хотел бы сделать UIButton, чтобы дать возможность по-прежнему отображать имена, но упорядочены по значению. Значение не нужно отображать. Кроме того, где в файлах .m / .h эти коды будут размещены? СПАСИБО!

1 Ответ

22 голосов
/ 27 января 2010

Чтобы иметь возможность помочь вам, мне нужны тестовые данные для работы. Допустим, ваш массив с данными выглядит так:

NSMutableArray *aMutableArray = [NSMutableArray arrayWithObjects:
         [NSDictionary dictionaryWithObjectsAndKeys:
          @"A", @"name",
          [NSNumber numberWithInt:6], @"value", nil],
         [NSDictionary dictionaryWithObjectsAndKeys:
          @"C", @"name",
          [NSNumber numberWithInt:2], @"value", nil],
         [NSDictionary dictionaryWithObjectsAndKeys:
          @"B", @"name",
          [NSNumber numberWithInt:4], @"value", nil], nil];

В этом случае, вот как вы сортируете его по значению:

NSSortDescriptor *aSortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"value" ascending:YES];
[aMutableArray sortUsingDescriptors:[NSArray arrayWithObject:aSortDescriptor]];

Что касается того, где разместить этот код, разместите его там, где вам нужно, чтобы произошло переупорядочение (в файле реализации [.m], конечно).

HTH и если будут какие-либо вопросы, задавайте их в комментариях.

...