2017-09-27 45 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

顺便说一下,你应该检查你的数组数量,然后尝试使用下标访问其元素索引。 –