Зацикливание в словаре NSMutable возвращает только последний элемент - PullRequest
0 голосов
/ 27 февраля 2012
//loop over alphabet and set the key values for addressbook
for(char a = 'a'; a <= 'z'; a++){
        addressbook=[[NSMutableDictionary alloc] init];
        [addressbook setValue:@"$" forKey:[NSString stringWithFormat:@"%c", a]];
        NSLog(@"%@ value, %@ key", @"$",[NSString stringWithFormat:@"%c", a]);

    }
}
//display the key values of addressbook
  for(NSString *key in addressbook){
    NSLog(@"%@ key, %@ value", key,[addressbook objectForKey:key]);
}  

Первый NSLog показывает рабочий цикл

2012-02-27 16:02:31.886 Adresboek[4692:503] $ value, a key
2012-02-27 16:02:31.889 Adresboek[4692:503] $ value, b key
2012-02-27 16:02:31.890 Adresboek[4692:503] $ value, c key
.
.
.
2012-02-27 16:02:31.911 Adresboek[4692:503] $ value, x key
2012-02-27 16:02:31.912 Adresboek[4692:503] $ value, y key
2012-02-27 16:02:31.913 Adresboek[4692:503] $ value, z key

Второй NSLog показывает только последний элемент

2012-02-27 16:02:31.914 Adresboek[4692:503] z key, $ value

1 Ответ

1 голос
/ 27 февраля 2012

Ну конечно. Вы создаете новый NSMutableDictionary каждый раз в цикле. Переместите творение в цикл.

for(char a = 'a'; a <= 'z'; a++){
        addressbook=[[NSMutableDictionary alloc] init];

addressbook=[[NSMutableDictionary alloc] init];
for(char a = 'a'; a <= 'z'; a++){
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...