Как переключить два значения в NSDictionary в Objective-C? - PullRequest
1 голос
/ 24 января 2012

У меня есть NSDictionary с двумя значениями.Теперь я хочу поменять значения.Вот мой код:

NSDictionary *aDictionary = [[NSDictionary alloc] init];
[aDictionary setValue:@"theValue1" forKey:@"theKey1"];
[aDictionary setValue:@"theValue2" forKey:@"theKey2"];

NSString *tmpValue = [aDictionary objectForKey:@"theKey1"];
[aDictionary setValue:[myDict objectForKey:@"theKey2"] forKey:@"theKey1"];
[aDictionary setValue:tmpValue forKey:[myDict objectForKey:@"theKey2"]];
NSLog(@"%@", myDict); 


//output
theKey1 = theValue2;
theKey2 = theValue2;
theValue2 = theValue1;

Что я делаю не так?

1 Ответ

3 голосов
/ 24 января 2012

Кроме пары более крупных проблем (вы должны использовать NSMutableDictionary вместо NSDictionary, если хотите что-то изменить, и вам следует использовать метод setObject:forKey: вместо setValue:forKey:), корень вашей проблемы эта строка:

[aDictionary setValue:tmpValue forKey:[myDict objectForKey:@"theKey2"]];

Подумайте, какую клавишу вы устанавливаете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...