我根本不知道这是否可行,但它会让我免受很多压力和糟糕的代码。是否有可能在阵列更新时进行监控?例如,方法A将数组a=[1,2,3]
更改为a=[1,2,3,4
],是否有可能在a
更新时触发某种委托?
答案 0 :(得分:30)
如果您的数组是类中的属性,则可以使用属性观察器。在更改之前调用willSet,之后调用didSet。这真的很容易。
var myArray:[Int] = [1, 3, 4] {
didSet {
println("arrayChanged")
}
}
如果我添加一个Int,remove和Int等,这将打印数组更改。我通常把它放在一行但是:
var myArray:[Int] = [1, 3, 4] { didSet { println("arrayChanged") } }