swift属性观察器

OC里面可以重写属性的get和set方法,swift里没有对应的写法,但有属性观察器
属性观察器会监控和响应属性值变化,每次属性设置值时都会调用属性观察器

swift里提供了属性观察器:

  • willSet 在新的值即将被设置时调用,还没设置
  • didSet 在新的值被设置之后调用

willSet会将新的属性值作为参数传入,可以为这个参数指定名称,不指定则为newValue

didSet则是将旧的属性值作为参数传入,不指定参数名称则为oldValue

class StepCounter {
    var totalSteps: Int = 0 {
        willSet(newTotalSteps) {
            print(" \(newTotalSteps)")
        }
        didSet {
            if totalSteps > oldValue  {
                print("Added \(totalSteps - oldValue) steps")
            }
        }
    }
}
let stepCounter = StepCounter()
stepCounter.totalSteps = 200
//  200
//  200 steps
stepCounter.totalSteps = 360
//  360
// 160 steps
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容