2012-03-01 4 views
0

Я хочу отсортированNSDictionary, но пути я видел достижения, которые кажутся слишком сложно.ИОС массив словарей

Что делать, если я просто делаю NSArray из NSDictionary? Таким образом, я знаю порядок повторных NSDictionary. Мне нужен заказ, потому что я имею дело с хронологией (данные как дни месяца).

Я все еще думаю, что может быть лучший способ, поэтому я обращаюсь к профессионалам (вы, ребята).

Спасибо.

+1

Не уверен, что я понимаю. Вы хотите отсортировать содержимое своего NSDictionary в хронологическом порядке, верно? Это означает сказать, что вы хотите отсортировать их по порядку ключа, содержащего данные? Массив NSDictionaries не решит вашу проблему. Это означает, что каждый элемент в вашем массиве будет NSDictionary. Что будет содержать каждый? Как он может быть отсортирован? Я мог бы не понимать вас, но я не могу понять «массив словарей». – wmorrison365

+0

Просто установите данные как ключ для объекта в словаре, нет? –

ответ

2

Предположив вы хотите отсортировать ключи от вашего NSDictionary см это SO сообщения:

Sort an NSMutableDictionary

Примечания он просто берет ключи из словаря (как массив) и сортирует массив. Затем вы можете использовать список отсортированных ключей для доступа к записям словаря по порядку.

+0

+1 для оригинальной идеи! – Jacksonkr

0

Я не пробовал это, но NSDictionaryController поддерживает сортировку. Существует пример at this link.

OP желает сортировать по ключам в одном случае и сортировать по значению в другом. Ответ на свои вопросы в этой форме:

NSSortDescriptor *caseInsensitiveDescriptor = [[[NSSortDescriptor alloc] initWithKey:@"key" ascending: YES selector: @selector(caseInsensitiveCompare:)] autorelease]; 
    [dictionaryController setSortDescriptors: [NSArray arrayWithObject: caseInsensitiveDescriptor]];  

NSDictionaryController наследует от NSArrayController, и, вероятно, реализует массив, как вы рассматривали, но он делает это прозрачно (вы не должны писать код).

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