Цель C - Использование NSDictionary? - PullRequest
2 голосов
/ 07 марта 2012

У меня есть следующие значения ключей в моем словаре, я пытаюсь перебрать каждую строку и записать каждый элемент, возможно ли это с помощью NSDictionary?

Обратите внимание, что мои ключи не уникальны

Key     Value
A         1
B         2
B         3
B         4
C         5
C         6
C         7
D         8

Ответы [ 5 ]

5 голосов
/ 07 марта 2012

В словаре ключи уникальны.

Вы должны иметь одно значение для каждого ключа.

4 голосов
/ 07 марта 2012

Это может быть плохой способ сделать это, но если ваш словарь не слишком большой, вы можете попробовать это:

Key     Value
1     Array with "A" and "1"
2     Array with "B" and "2"
3     Array with "B" and "3"
//and so on

Тогда вы можете легко пройти через него и записать то, что вам нужно (в данном случае [theArray objectAtIndex:1]).

Надеюсь, это поможет

1 голос
/ 07 марта 2012

Я замечаю, что ваши вторые значения являются смежными числами - поэтому вы уверены, что не хотите использовать NSArray (упорядоченный список), содержащий "A", "B", "B", "B" , "C", "C", "C", "D"? Затем перебрать:

NSArray* array = [NSArray arrayWithObjects:@"A", @"B", @"B", @"B", @"C", @"C", @"C", @"D", nil];
for (NSUInteger i = 0; i < [array count]; i++)
{
    NSUInteger value = i+1;
    NSString* key = [array objectAtIndex:i];
    //Your code here.
}
0 голосов
/ 07 марта 2012

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

Однако, если выхотите пройтись по словарю, проверить этот пост:

цикл по NSMutableDictionary

0 голосов
/ 07 марта 2012

В NSDictionary ваши ключи должны быть уникальными. Из документов :

Пара ключ-значение в словаре называется записью. Каждая запись состоит из одного объекта, который представляет ключ и второго объекта это значение этого ключа. В словаре ключи являются уникальными. То есть, нет двух ключей в одном словаре равны (как определено от isEqual:).

Получив NSDicitonary, вы можете получить доступ и переключаться между клавишами, используя:

- (NSArray *)allKeys

EDIT:

, чтобы получить аналогичную функциональность, отметьте здесь

звучит так, как будто это то, что вы ищете Cheers,

...