如果我有一個數據樹是這樣的:iPhone - 更改子子子的NSMutableDictionary價值
NSMutableDictionary (dict1)
NSMutableDictionary (dict2)
NSMutableArray (array)
NSMutableDictionary (dict3)
Key1
Key2
NSMutableDictionary (dict_n)
Keyn
Keyn
NSMutableDictionary (dict_n)
NSMutableArray (array_n)
NSMutableDictionary (dict_n)
Keyn
Keyn
NSMutableDictionary (dict_n)
Keyn
Keyn
如果我想改變密鑰1的值,有沒有比simplier方式.. 。
得到dict1
然後讓dict2
然後讓陣列
然後讓dict3
轉換dict3到一個可變Dicti onary
然後設置KEY1
轉換陣列以一個可變的陣列
然後設置dict3成陣列
轉換dict2到一個可變的字典
然後設定數組dict2
轉換dict1到一個可變的字典
然後將dict2設置爲dict1
這樣做對於每個值我必須改變是一個真正令人頭疼的問題,並且真正耗費代碼。
爲什麼你在做最後三步?另外,是否要將Key1設置爲數組中所有字典中的某個值或者只有一個字典? – 2011-05-11 01:36:55
@Bavarious提供了一個很好的觀點:如果您只是在現有的dict3中更改某個鍵的值,則無需對dict1,dict2或數組執行任何操作。 – Caleb 2011-05-11 02:50:12
@Bavarious:這是錯誤的。從Dictionary獲取對象時,它將返回一個非可變對象。所以你不能在裏面設置一個值。爲此,您必須將其轉換爲NEW Mutable對象,設置要更改的值,然後將其插入到其父項中以使更改可用。我已經更新了這個問題來反映這一點。 – Oliver 2011-05-12 12:44:51