Доступ к объектам в NSMutableDictionary по индексу


чтобы отобразить ключ/значения из NSMutableDictionary последовательно (в tableview), мне нужно получить к ним доступ по индексу. Если бы доступ по индексу мог дать ключ по этому индексу, я мог бы получить значение. Есть ли способ сделать это, или другая техника?

2 55

2 ответа:

Вы можете получить NSArray, содержащий ключи объекта с помощью метода allKeys. Затем вы можете посмотреть на это по индексу. Обратите внимание, что порядок появления ключей в массиве неизвестен. Пример:

NSMutableDictionary *dict;

/* Create the dictionary. */

NSArray *keys = [dict allKeys];
id aKey = [keys objectAtIndex:0];
id anObject = [dict objectForKey:aKey];

EDIT: на самом деле, если я понимаю, что вы пытаетесь сделать то, что вы хотите легко сделать с помощью быстрого перечисления, например:

NSMutableDictionary *dict;

/* Put stuff in dictionary. */

for (id key in dict) {
    id anObject = [dict objectForKey:key];
    /* Do something with anObject. */
}

EDIT: исправлена опечатка, указанная Марко.

вы можете получить массив всех ключей с allKeys метод словарь; а затем вы можете получить доступ к массиву по индексу. однако словарь сам по себе не имеет присущего порядка, поэтому порядок ключей, которые вы получаете до и после изменения словаря, может быть совершенно другим