Сортировать строки NSS с помощью caseInsensitiveCompare? - PullRequest
0 голосов
/ 07 августа 2011

Чего я хотел бы добиться: 1. Схватить строки NSS со всех словарей NSD из моего массива NSArray (только одна строка NSS на каждый NSDictionary) 2. Затем отсортировать все строки NSS так, чтобы все имена сортировались в алфавитном порядке.

Например: скажем, есть Марк, Ник и Роб.В моем массиве 6 NSDictionaries (у каждого игрока есть 2 nsdictionaries).Так это будет выглядеть (рандомизировано): Марк, Роб, Ник, Ник, Роб, Марк

Я хочу отсортировать это так: Марк, Марк, Ник, Ник, Роб, Роб

Возможно ли это?Как бы я это сделал?

Спасибо!

1 Ответ

2 голосов
/ 08 августа 2011

В первую очередь вам нужен массив имен.Предположим, что «dictionaryArray» - это имя вашего массива словарей, а «name» - один из ключей в каждом из ваших словарей:

NSArray *names = [dictionaryArray valueForKey:@"name"];

Далее вы сортируете этот массив.В этом конкретном примере вы фактически создаете отсортированную неизменяемую копию:

NSArray *sortedNames = [names sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)];

Если вместо этого вы хотите, чтобы изменяемый массив сортировался, то после создания «имен» массива вы можете сделать изменяемую версиюоб этом:

NSMutableArray *mutableNames = [NSMutableArray arrayWithArray:names];

И затем вы можете отсортировать его на месте с помощью:

[mutableNames sortUsingSelector:@selector(caseInsensitiveCompare:)];

Удачи вам в ваших начинаниях.

...