2017-09-27 114 views
0

我試圖更新字典數組內的值,但未能這樣做。 這是我正在做它:用另一個字典替換數組內的字典

var latestServerData = [[String:AnyObject]]() // Global variable 

in someFunction{ 
    print(latestServerData) 
    var dic1 = [String:AnyObject]() 
    dic1 =latestServerData[4] 
    dic1["isVisited"] = true as AnyObject 
    print(dic1) 
    latestServerData[4] = dic1 
    print(latestServerData) 
} 

print(dic1)我有正確的數據,但它不是在latestServerData陣列得到更換。我做錯了什麼,什麼是正確的方式。任何解釋正確的方法表示讚賞。 謝謝!

+0

self.latestServerData [4]我覺得應該是latestServerData [4]男子不是? 」自我「 – Govaadiyo

+0

@TofaaniKaanudo沒有這並沒有改變什麼latestServerData聲明是全局性不是嗎?!特殊功能 –

+0

你可以在控制檯上打印latestServerData並放在這裏嗎? – Govaadiyo

回答

1

對我來說,你的代碼是工作的罰款

var latestServerData = [ 
    ["name": "Amit", "age": "27", "rollno": 12,"isVisited":true], 
    ["name": "Ananad", "age": "26", "rollno": 10,"isVisited":true], 
    ["name": "Kashyap", "age": "25", "rollno": 11,"isVisited":true], 
    ["name": "Raj", "age": "25", "rollno": 07,"isVisited":true], 
    ["name": "Akshya", "age": "28", "rollno": 13,"isVisited":true] 
] as [[String:AnyObject]] 

這是爲我工作

var dic1 = [String:AnyObject]() 
dic1 = latestServerData[4] 
dic1["isVisited"] = false as AnyObject 
latestServerData[4] = dic1 

它也在努力解決

latestServerData[0]["isVisited"] = false as AnyObject 

print(latestServerData) 

[「name」:Amit,「age」:27,「rollno」:12,「isVisited」:0],[「name」:Ananad,「age」:26,「rollno」:10,「isVisited」 :1],[「name」:Kashyap,「age」:25,「rollno」:11,「isVisited」:1],[「name」:Raj,「age」:25,「rollno」:7, isVisited「:1],[」name「:Akshya,」age「:28,」rollno「:13,」isVisited「:0]]

觀察數組中的First對象和Last對象。 isVisited「:0

+0

我仍然沒有得到爲什麼我的方法不工作!感謝您的幫助。 –

+0

您應該使用Any而不是AnyObject。 AnyObject只能容納類,而不是結構。所有的結構(包括字符串,雙精度,整數,字典)將橋接到他們的對手,如NSString,NSNumber和NSDictionary) –

+0

順便說一下,你應該檢查你的數組數量,然後嘗試使用下標訪問其元素索引。 –