Прежде всего, вместо использования NSMutableArray
используйте Swift
массив типа [[String:Any]]
, т.е.
var arrNotificationList = [[String:Any]]() //array of dictionaries
arrNotificationList.append(contentsOf: [
["title":"Select All", "selected":true],
["title":"Match Reminder", "selected":false],
["title":"Wickets", "selected":false],
["title":"Half-Centure", "selected":false],
])
Теперь, поскольку это array of dictionary
, а dictionary
является типом значения, поэтому любые изменения, внесенные в него в foreach loop
, не будут отражаться в исходном dictionary
.
Используйте map(_:)
, чтобы получить новый массив с selected = sender.isOn
для всех массивов dictionaries
в arrNotificationList
.
arrNotificationList = arrNotificationList.map {
["title": $0["title"], "selected": sender.isOn]
}