相当新的。我试图将一些值/键添加到已经有值/键的数组。
itemsArray包含json并且派生自变量json,它是从rest api调用传递给方法的参数。
这是我正在使用的代码并且它中止(在[i setobject]上用 [__ NSCFDictionary setObject:forKey:]:发送到不可变对象的变异方法'
NSMutableDictionary *itemsArray = [json objectForKey:@"items"];
for ( NSMutableDictionary *i in itemsArray) {
[i setObject:@"FirstValue" forKey:@"parents"];
}
所有这一切应该是为字典中的每个项添加名为parents的键。
现在,如果我将值/键硬编码到可变字典itemsArray中 - 它可以正常工作。它就在我使用变量json时,它作为参数传递并从对rest api的调用中获得。所以问题很可能是itemsArray包含一个不可变的json对象,即使itemsArray是可变的。
我的问题是如何让json对象变得可变(假设它会治愈它)所以它会起作用。 ?
答案 0 :(得分:0)
您在错误消息中找到答案:itemsArray
是NSDictionary
而不是NSMutableDictionary
。有关详细信息,请参阅What is an NSCFDictionary?的答案。
您是如何创建json
的?您需要确保密钥NSMutableDictionary
包含@"items"
。
答案 1 :(得分:0)
您需要从itemsArray创建一个可变字典。类似的东西:
NSMutableDictionary *mutableDictionary = [i mutableCopy];
然后,您可以随意添加对象。