变量可以使用观察属性的能力是什么意思?

时间:2014-06-14 19:41:51

标签: swift

在Swift文档(属性 - 属性观察者/全局和局部变量)中,声明

  

上面描述的用于计算和观察属性的功能也可用于全局变量和局部变量。

我了解如何在类中使用willSetdidSet,但上述关于全局变量和/或局部变量的含义是什么?


更新:这意味着您可以执行此操作(如果您记得需要显式类型):

var someGlobalString: String = "abc" {
    willSet {
        println("someGlobalString changing from \(someGlobalString) to \(newValue)")
    }
    didSet {
        println("someGlobalString changed from \(oldValue) to \(someGlobalString)")
    }
}
someGlobalString = "qrs"

并在控制台中看到:

someGlobalString changing from abc to qrs
someGlobalString changed from abc to qrs

我认为这很棒。

1 个答案:

答案 0 :(得分:1)

这意味着您也可以将观察者用于本地/全球变量

func test() {
    var totalSteps: Int = 0 {
        willSet(newTotalSteps) {
            println("About to set totalSteps to \(newTotalSteps)")
        }
        didSet {
            if totalSteps > oldValue  {
                println("Added \(totalSteps - oldValue) steps")
            }
        }
        }

        totalSteps += 1
    }
test()