I have array:
var arrDicContact = udContact.valueForKey(\"arrDicContact\") as [NSDictionary]
and i want to change one contact in array:
Assuming we have the array like this:
var array:[NSDictionary] = [["name":"foo"],["name":"bar"],["name":"baz"]]
Using enumerate
for (idx, dic) in enumerate(array) {
if (dic["name"] as? String) == "bar" {
array[idx] = ["name": "newBar"]
}
}
Iterate over indices:
for idx in indices(array) {
if (array[idx]["name"] as? String) == "bar" {
array[idx] = ["name": "newBar"]
}
}
More aggressively, replace whole array using map:
array = array.map { dic in
if (dic["name"] as? String) == "bar" {
return ["name": "newBar"]
}
return dic
}