美文网首页
Swift - 属性观察器 Property Observer

Swift - 属性观察器 Property Observer

作者: 小黑Swift | 来源:发表于2016-06-15 21:06 被阅读1282次
属性观察器可让我们在使用属性时候,在希望一个属性发生改变时候进行某些操作。也就是一些小的代码块,可在一个属性值即可发生改变之前 willSet 或者之后 didSet 运行。要创建一个属性观察器,可在属性后面添加大括号(类似对计算属性的做法)
class PropertyObserverExmple {
    var number: Int = 0 {
        willSet(newNumber) {
            print("About to change to \(newNumber)")
        }
        didSet(oldNumber) {
            print("Just changed from \(oldNumber) to \(self.number)")
        }
    }
}

var observer = PropertyObserverExmple()
observer.number = 4
// About to change to 4 ,Just changed from 0 to 4

使用例子-比如更换UI主题模式
//属性观察器 Property Observer
//注意:didSet 和 willSet 不会再初始化阶段init时候调用
enum Theme {
    case DayMode
    case NightMode
}

class UI{
    
    private var fontColor: UIColor!
    private var backgroundColor: UIColor!
    var themeMode: Theme = .DayMode {
        didSet {
            self.changeTheme(themeMode)
        }
    }
    
    init(themeMode: Theme) {
        self.themeMode = themeMode
        self.changeTheme(themeMode)
    }
    
    private func changeTheme(themeMode: Theme) {
        switch themeMode {
        case .DayMode:
            fontColor = UIColor.blackColor()
            backgroundColor = UIColor.whiteColor()
        case .NightMode:
            fontColor = UIColor.whiteColor()
            backgroundColor = UIColor.blackColor()
        }
    }
}
themeMode

相关文章

  • Swift - 属性观察器 Property Observer

    属性观察器可让我们在使用属性时候,在希望一个属性发生改变时候进行某些操作。也就是一些小的代码块,可在一个属性值即可...

  • [Swift开发者必备Tips] 属性观察 willSet 和

    属性观察 (Property Observers) 是 Swift 中一个很特殊的特性,利用属性观察我们可以在当前...

  • willSet和didSet

    属性观察 (Property Observers) 是 Swift 中一个很特殊的特性,利用属性观察我们可以在当前...

  • Swift 属性观察调用逻辑

    属性观察 (Property Observers) 是 Swift 中一个很特殊的特性,利用属性观察我们可以在当前...

  • 属性观察

    /* Property Observers 属性观察是 Swift 中一个很特殊的特性。 willset didS...

  • Swift属性底层探究

    Swift的属性分为存储属性(Stored Property)和计算属性(Computed Property),存...

  • Lecture 1 Introduction

    Notes 1. didSet property observer, 相当于对属性的一个observer,每当fl...

  • iOS 面试题(四)

    1. Property wrappers in Swift【属性包装】 官方文档 -- Property wrap...

  • swift属性观察器

    OC里面可以重写属性的get和set方法,swift里没有对应的写法,但有属性观察器属性观察器会监控和响应属性值变...

  • swift 属性观察器

    概念 用来监视属性值变化,当属性值发生改变时可以对此作出响应。可以为除了延迟存储属性之外的其他存储属性添加属性观察...

网友评论

      本文标题:Swift - 属性观察器 Property Observer

      本文链接:https://www.haomeiwen.com/subject/mtmpdttx.html