在 Swift 中,属性观察器(Property Observers)

在 Swift 中,属性观察器(Property Observers) 是一种可以监听和响应属性值变化的机制。通过属性观察器,你可以在属性的值被设置之前或之后执行特定的代码。属性观察器通常用于存储属性(Stored Properties),不能直接用于计算属性(Computed Properties),但可以通过其他方式间接实现类似功能。

属性观察器的类型

Swift 提供了两种类型的属性观察器:

willSet:

在属性的值被设置之前调用。

你可以通过一个默认参数(通常命名为 newValue)访问新值。

如果需要,可以自定义参数名称。

didSet:

在属性的值被设置之后调用。

你可以通过一个默认参数(通常命名为 oldValue)访问旧值。

如果需要,可以自定义参数名称。

属性观察器的使用规则

属性观察器只能添加到存储属性上,不能直接添加到计算属性上。

如果子类重写了父类的存储属性,并且该属性在父类中已经定义了观察器,那么子类可以添加额外的观察器或自定义行为。

如果属性的值在初始化时被设置(例如在初始化器中),willSet 和 didSet 不会被调用。

示例代码

1. 基本用法

swift

class Example {

var myProperty: Int = 0 {

willSet {

print("The value is about to change from \(myProperty) to \(newValue)")

jrhz.info

}

didSet {

print("The value has changed from \(oldValue) to \(myProperty)")

}

}

}

let example = Example()

example.myProperty = 10

// 输出:

// The value is about to change from 0 to 10

// The value has changed from 0 to 10

2. 自定义参数名称

swift

class Example {

var myProperty: Int = 0 {

willSet(newVal) {

print("The value is about to change from \(myProperty) to \(newVal)")

}

didSet(oldVal) {

print("The value has changed from \(oldVal) to \(myProperty)")

}

}

}

let example = Example()

example.myProperty = 20

// 输出

特别声明:[在 Swift 中,属性观察器(Property Observers)] 该文观点仅代表作者本人,今日霍州系信息发布平台,霍州网仅提供信息存储空间服务。

猜你喜欢

央媒对冯远征称呼变了,两字之差藏深意,濮存昕当年真没说错(冯远征 对手)

濮存昕早就说过,冯远征身上有一种对艺术的极致追求,那时人们或许把这当作同行间的客套话,但今天再看央媒对冯远征的称呼,我们才更清楚,濮存昕说的是真心话。今天,院长这两个字,不仅是对他多年坚持的褒奖,也给整个行业…

央媒对冯远征称呼变了,两字之差藏深意,濮存昕当年真没说错(冯远征 对手)

『时装周』这一天,『王鹤棣』贵气扛住镜头,『刘诗诗』怎么变样了?(『时装周』时长)

他依然保持着大背头的发型,而且他的发型蓬松感十足,整个发顶高高耸立,增添了不少精神气,再加上他那挺拔的五官,显得更加帅气、阳光。加上眼窝凹陷,眼神也有些凌厉,和别人交流时,常常让人觉得带着一种莫名的攻击性,也…

『时装周』这一天,『王鹤棣』贵气扛住镜头,『刘诗诗』怎么变样了?(『时装周』时长)

曾宝仪朝圣教堂突痛哭! 首吐演艺疲惫「能不能别再往前走了」

」 曾宝仪回想起近年来的演艺生涯与个人生活,罕见地向观众袒露了自己的内心挣扎与疲惫:「这些年做了很多事情,虽然收获了很多,但我常常觉得自己很累。我并不否定这些日子带来的所有经历和回报,但有时候,我也在问自…

曾宝仪朝圣教堂突痛哭! 首吐演艺疲惫「能不能别再往前走了」

微软到底怎么了!『Windows』 11更新后电脑无法启动:越打补丁 问题越来越多(微软面临几个月倒闭)

快科技1月26日消息,windowscentral认为,微软需要通过一次次透明的决策来重建用户信心。 然而,现在用户又面临着一个更加严重的问题:受影响的计算机根本无法启动。受影响的设备屏幕会显示黑屏,并显示…

微软到底怎么了!『Windows』 11更新后电脑无法启动:越打补丁 问题越来越多(微软面临几个月倒闭)

腰疼腿疼挂什么科(腰疼腿疼挂什么科比较好)

腰腿疼痛可能由多种原因引起,包括腰椎间盘突出症、腰椎滑脱、腰椎管狭窄症、腰椎『肿瘤』或爆裂性骨折等。这些情况会导致脊髓神经受压,从而引发疼痛。鉴于这些病症属于骨科范畴,患者在遇到腰腿疼痛问题时,咨询骨科医生是合适的

腰疼腿疼挂什么科(腰疼腿疼挂什么科比较好)