2012-04-09 35 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