swift - willSet didSet

swift - willSet didSet

  • 属性初始化设值 不会触发 willSet 和 didSet
  • 属性 设值时, 先触发 willSet 然后触发 didSet
  • willSet 有个newVlue 参数 代表这次要设置的新值, didSet 有个 oldValue 的参数, 代表上次属性值
  • 即使设置的值和上次的值一样, 也会调用 willSet 和 didSet
var name:String = "叛国贼 马步芳"{
    didSet{
    print("旧名字: \(oldValue)")
    }

    willSet{
    print("新名字: \(newValue))")
    }
}

//赋值
name = "马伯庸"
print("最佳小说家 \(name)")
//打印结果
//新名字:马伯庸
//旧名字: 叛国贼 马步芳
//最佳小说家 马伯庸

name = "罗永浩"
print("手机界的相声演员 \(name)")
//新名字:罗永浩
//旧名字: 马伯庸
//手机界的相声演员 罗永浩

name = "白云先生"
print("高贵的中国精神贵族 揭掉外国遮羞布的高人: \(name)")
//新名字:白云先生
//旧名字: 罗永浩
//高贵的中国精神贵族 揭掉外国遮羞布的高人: 白云先生





最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容