‌Swift中的willSet和didSet apple文化

Swift中的willSetdidSet是属性观察器,用于监视和响应属性值的变化。‌

基本概念

  1. ‌属性观察器‌:willSetdidSet是属性观察器,用于监视和响应属性值的变化。它们只能用于var声明的属性,而不能用于let常量。
  2. ‌willSet‌:在属性的值被修改之前调用,可以使用newValue来获取即将赋予该属性的新值。
  3. ‌didSet‌:在属性的值被修改之后调用,可以使用oldValue来获取修改前的旧值‌12。

使用场景和限制

  • ‌使用场景‌:willSetdidSet可以应用于存储属性和计算属性。它们可以在属性值即将被设置或已经被设置时执行一些自定义的逻辑。例如,可以在willSet中进行预处理操作,检查新值是否满足特定条件;在didSet中进行后处理操作,检查旧值是否满足特定条件,并执行一些额外的逻辑‌13。
  • ‌限制‌:属性观察器不能用于计算属性。此外,属性观察器必须有一个初始值(例如nil),并且不能使用带有计算属性的属性观察器‌4。

示例代码

swiftCopy Code
 
struct Person { var name: String { willSet { print("willSet-\(newValue)") } didSet { print("didSet-\(oldValue)") } } init(name: String) { self.name = name } } var person = Person(name: "ios") person.name = "swift" // 输出: willSet-swift 和 didSet-ios

posted on 2025-01-02 00:23  漫思  阅读(173)  评论(0)    收藏  举报

导航