监视对数组对象的更改

Monitor changes to an array object

我完全不知道这是否可行,但它会让我免于很多压力和糟糕的代码。是否可以在阵列更新时进行监控?例如,方法 A 将数组 a=[1,2,3] 更改为 a=[1,2,3,4],是否可以有一种在更新 a 时触发的委托?

如果您的数组是 class 中的 属性,您可以使用 属性 观察者。 willSet 在更改前调用,didSet 在更改后调用。真的很简单。

var myArray:[Int] = [1, 3, 4] {
    didSet {
        println("arrayChanged")
    }
}

如果我添加 Int、remove 和 Int 等,这将打印数组已更改。不过我通常将其放在一行中:

var myArray:[Int] = [1, 3, 4] { didSet { println("arrayChanged") } }