2012-04-09 58 views
0

我有一个NSMutableDictionary,最初设置了键和值。 后来我需要更新某些键的值,我想我会需要做的仅仅 [mutableDict的setValue:VAL forKey:键],但这将引发异常说:Objective C:更新NSMutableDictionary的键值?

[__NSCFDictionary setObject:forKey:]: mutating method sent to immutable object 

我在做什么错误? (我有可变字典的每个键内的另一个可变的字典,但我不认为这就是为什么)

+2

由于某种原因,你实际上使用一个'NSDictionary'而不是'NSMutableDictionary '很难说为什么没有更多的代码,也许你正在使用通过调用'copy'获得的副本,或者你已经从plist/userDefaults加载字典..我们可以看到更多的代码吗? – 2012-04-09 23:23:27

+0

@ Paul.s是的,我如果是这样,那么我还应该使用什么来复制? – Dennis 2012-04-09 23:26:00

+1

使用'mutableCopy'而不是'copy'来获取可变字典 – 2012-04-09 23:26:30

回答

2

我会复制粘贴我的意见只是柜面你要保持你的100%接受

Paul.s

出于某种原因,您实际上使用NSDictionary而不是NSMutableDictionary。很难说为什么没有更多的代码,也许你正在使用通过调用副本获得的副本,或者你已经从plist/userDefaults加载字典。我们能看到更多的代码吗?

丹尼斯

@ Paul.s是的,我没有复制一个NSMutableDictionary。那是为什么?如果是这样,那么我还应该使用什么来复制?

Paul.s

使用mutableCopy而不是副本来获得一个可变的字典

丹尼斯

@ Paul.s哦..不知道那。我是新来的Objective-C,我试图寻找我做错了什么,但我错过了它:(谢谢!!

+0

哈哈很好,谢谢! – Dennis 2012-04-09 23:43:49