Предположим, [something dictionaryValue]
возвращает неизменный словарь, и вам нужна изменяемая версия этого словаря. Недостаточно сказать:
NSMutableDictionary *d = [something dictionaryValue];
Это просто говорит компилятору, что d
- это NSMutableDictionary, но на самом деле это тот же неизменный словарь, который вы получили из [something dictionaryValue]
. Вместо этого вам нужно создать новую изменчивую копию словаря:
NSMutableDictionary *d = [NSMutableDictionary dictionaryWithDictionary:
[something dictionaryValue]];
Аналогично, используйте [NSMutableArray arrayWithArray:...]
для массивов.