使用Swift修改数组中的对象?

Bin*_*ran 4 arrays for-loop nsdictionary swift

我有阵列:

var arrDicContact = udContact.valueForKey("arrDicContact") as [NSDictionary]
Run Code Online (Sandbox Code Playgroud)

我想更改数组中的一个联系人:

 for let dicx:NSDictionary in arrDicContact{
     if (dic.valueForKey("name") as String) == selectedName{
        //how to modify dic to newdic: dic = newdic
     }
 }
Run Code Online (Sandbox Code Playgroud)

我可以使用for循环与int i从0到arrDicContact.count-1.但是它没有退出...我喜欢循环(因为... ...)所以任何人都帮助我!:) Tks很多.

rin*_*aro 17

假设我们有这样的数组:

var array:[NSDictionary] = [["name":"foo"],["name":"bar"],["name":"baz"]]
Run Code Online (Sandbox Code Playgroud)

运用 enumerate

for (idx, dic) in enumerate(array) {
    if (dic["name"] as? String) == "bar" {
        array[idx] = ["name": "newBar"]
    }
}
Run Code Online (Sandbox Code Playgroud)

迭代indices:

for idx in indices(array) {
    if (array[idx]["name"] as? String) == "bar" {
        array[idx] = ["name": "newBar"]
    }
}
Run Code Online (Sandbox Code Playgroud)

更积极地,替换整个array使用map:

array = array.map { dic in
    if (dic["name"] as? String) == "bar" {
        return ["name": "newBar"]
    }
    return dic
}
Run Code Online (Sandbox Code Playgroud)