2013-05-08 2 views
1

Кто-нибудь знает, определен ли порядок перечисления с использованием enumerateKeysAndObjectsUsingBlock в NSDictionary? Мои эксперименты показывают, что это тот же порядок, что и материал, но я не могу быть на 100% уверенным. & Я не хочу, чтобы он ломался ... Не могу найти ничего, что говорит мне.enumerateKeysAndObjectsUsingBlock - порядок записей в словаре?

+0

заказ не гарантируется в любом случае, но для сохранения порядка объекта dict вы можете добавить дополнительный ключ с именем 'orderIndex' и отсортировать свой dict с помощью' orderIndex', другой вариант - использовать NSOrderSet, но он не позволит дублировать значение в нем –

ответ

4

заказ не определен вообще. то есть, как набор действует и словарь довольно близко к секундочке ...

, чтобы быть уверенным, что заказ хранится у вас есть использовать Сортируемое свойство и когда вы получите ключи, отсортировать полученный массив

ИЛИ использовать OrderedDictionary .... есть некоторая реализация, что плавает на Google, но в основном это только NSDictionary + ап NSArray с ключами находятся в стабильном порядке

хороший один за головами какао

https://github.com/davedelong/CHDataStructures/blob/master/source/CHOrderedDictionary.h https://github.com/davedelong/CHDataStructures/blob/master/source/CHOrderedDictionary.m

+0

Спасибо за это (и извинения за поздний прием - были в отъезде). Я как бы пришел к такому же выводу и собирался написать свое, но я посмотрю на OrderedDictionary. – SomaMan

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