[英]exception: “mutating method sent to immutable object” which is actually a mutable array
我試圖將值更改為可變數組的特定鍵:
NSMutableArray* reversed = [NSMutableArray arrayWithArray:regions];
[reversed setValue:@"current" forKey:@"region"];
但這導致了一個未捕獲的異常:
*由於未捕獲的異常'NSInternalInconsistencyException'而終止應用程序,原因:'-[__ NSCFDictionary setObject:forKey:]:將變異方法發送給不可變對象'*首先拋出調用棧:
為什么告訴我我的NSMutableArray是不可變的對象?
setValue:forKey:
被記錄為可以執行以下操作 :
setValue:forKey:
使用指定的值和鍵在數組的每個項目上調用setValue:forKey:。
強調我的。 您的NSMutableArray
是可變的,但是其中包含的項之一是可變的。
您是否在該錯誤消息中看到對NSMutableArray
任何提及? 不。它提到了__NSCFDictionary
,它是NSDictionary
運行時類。
您對setValue:forKey:
調用將轉發到此數組中的所有對象。 這些對象中至少有一個是不可變的NSDictionary
,它將引發此異常。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.