将键/值添加到NSMutableDictionary时出现问题

时间:2014-07-09 23:54:31

标签: objective-c xcode nsmutabledictionary

相当新的。我试图将一些值/键添加到已经有值/键的数组。

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对象变得可变(假设它会治愈它)所以它会起作用。 ?

2 个答案:

答案 0 :(得分:0)

您在错误消息中找到答案:itemsArrayNSDictionary而不是NSMutableDictionary。有关详细信息,请参阅What is an NSCFDictionary?的答案。

您是如何创建json的?您需要确保密钥NSMutableDictionary包含@"items"

答案 1 :(得分:0)

您需要从itemsArray创建一个可变字典。类似的东西:

NSMutableDictionary *mutableDictionary = [i mutableCopy];

然后,您可以随意添加对象。