Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 目标C:更新NSMutableDictionary的键值?_Objective C_Xcode_Cocoa_Osx Lion_Nsmutabledictionary - Fatal编程技术网

Objective c 目标C:更新NSMutableDictionary的键值?

Objective c 目标C:更新NSMutableDictionary的键值?,objective-c,xcode,cocoa,osx-lion,nsmutabledictionary,Objective C,Xcode,Cocoa,Osx Lion,Nsmutabledictionary,我有一个NSMutableDictionary,最初设置了键和值。 后来我需要更新某些键的值,我想我只需要这样做 [mutableDict setValue:val forKey:key],但这会引发一个异常,表示: [__NSCFDictionary setObject:forKey:]: mutating method sent to immutable object 我做错了什么? (我在可变字典的每个键中都有另一个可变字典,但我不认为这就是为什么)我将复制粘贴我的评论,只要你想让你10

我有一个NSMutableDictionary,最初设置了键和值。 后来我需要更新某些键的值,我想我只需要这样做 [mutableDict setValue:val forKey:key],但这会引发一个异常,表示:

[__NSCFDictionary setObject:forKey:]: mutating method sent to immutable object
我做错了什么?
(我在可变字典的每个键中都有另一个可变字典,但我不认为这就是为什么)

我将复制粘贴我的评论,只要你想让你100%接受

保罗


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

丹尼斯


@是的,我的确抄了一本词典。这就是为什么?如果是,那么我还应该用什么来复制

保罗

使用可变副本而不是复制来获取可变字典

丹尼斯


@保罗:哦。。我不知道。我是Objective-C的新手,我试图寻找我做错了什么,但我错过了:(谢谢!)


由于某些原因,您实际上使用的是
NSDictionary
而不是
NSMutableDictionary
。很难说为什么没有更多的代码,可能您使用的是通过调用
copy
获得的副本,或者您已经从plist/userDefaults加载了字典。我们可以看到更多的代码吗?@Paul.s是的,我确实复制了NSMutableDictionaryy、 这就是原因吗?如果是,那么我还应该使用什么来复制?使用
mutableCopy
而不是
copy
来获得一个可变的dictionary@Paul.s哦..我不知道。我是Objective-C的新手,我试图寻找我做错了什么,但我错过了:(谢谢!!