Манипулировать массивами в NSDictionary - PullRequest
1 голос
/ 15 февраля 2012

Я пытался манипулировать массивом в NSMutableDictionary напрямую:

[[myDictionary objectForKey: @"key"] addObject: object];

Это не работает! Я даже пробовал кастинг типов:

[(NSMutableArray*)[myDictionary objectForKey: @"key"] addObject: object];

Это тоже не сработало!

Единственное, что сработало, было:

NSMutableArray *array = [myDictionary objectForKey: @"key"];
[array addObject: object];
[myDictionary setObject: array forKey: @"key"]

Есть ли способ манипулировать массивом в словаре, похожий на первый фрагмент кода; т.е. без необходимости создавать новый массив, манипулировать им и затем сохранять его?

Ответы [ 2 ]

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

Проблема заключалась в том, что я не выделил массив в словаре NSMutable, т. Е. Перед добавлением объектов используйте следующий код:

[myDictionary addObject: [[NSMutableArray alloc]init] forKey: @"key"];
1 голос
/ 15 февраля 2012

Вы случайно загружаете NSDictionary из файла или URL?Из документации API: «Объекты, содержащиеся в этом словаре, являются неизменяемыми, даже если словарь изменчив.»

...