我有一个数组,有多个值。我想检测其中一个值是否已更改,如下所示:
var array =
[
1,
2,
3,
4 { didSet{ print("Value Changed")}},
5,
6
]
以任何方式,这可能吗?
谢谢
斯威夫特 3.0
您可以像下面那样对观察者执行更改数组索引的操作。
var oldArray: [Int] = []
var array = [ 1,2,3,4,5,6] {
willSet {
// Set old array value for compare
oldArray = array
}
didSet {
let changedIndex = zip(array, oldArray).map{$0 != $1}.enumerated().filter{$1}.map{$0.0}
print("index: \(changedIndex)")
}
}
// Now change value of index 4 of array
array[4] = 10 //index: [4]