'didSet' 数组中的某些元素 - Swift
'didSet' certain elements inside Arrays - Swift
我有一个包含多个值的数组。我想检测其中一个值是否已更改,如下所示:
var array =
[
1,
2,
3,
4 { didSet{ print("Value Changed")}},
5,
6
]
这有可能吗?
谢谢
Swift 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{[=10=] != }.enumerated().filter{}.map{[=10=].0}
print("index: \(changedIndex)")
}
}
// Now change value of index 4 of array
array[4] = 10 //index: [4]
我有一个包含多个值的数组。我想检测其中一个值是否已更改,如下所示:
var array =
[
1,
2,
3,
4 { didSet{ print("Value Changed")}},
5,
6
]
这有可能吗?
谢谢
Swift 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{[=10=] != }.enumerated().filter{}.map{[=10=].0}
print("index: \(changedIndex)")
}
}
// Now change value of index 4 of array
array[4] = 10 //index: [4]