完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
属性观察者,类似于触发器。用来监视属性的除初始化之外的属性值变化,当属性值发生改变时可以对此作出响应。有如下特点:
1,不仅可以在属性值改变后触发didSet,也可以在属性值改变前触发willSet。 2,给属性添加观察者必须要声明清楚属性类型,否则编译器报错。 3,willSet可以带一个newName的参数,没有的话,该参数默认命名为newValue。 4,didSet可以带一个oldName的参数,表示旧的属性,不带的话默认命名为oldValue。 5,属性初始化时,willSet和didSet不会调用。只有在初始化上下文之外,当设置属性值时才会调用。 6,即使是设置的值和原来值相同,willSet和didSet也会被调用 |
|
相关推荐
1个回答
|
|
示例如下:*
{ //普通属性 var firstName: String = "" var lastName: String = "" var nickName: String = "" //计算属性 var fullName: String { get { return nickName + " " + firstName + " " + lastName } } //带属性监视器的普通属性 var age: Int = 0 { //我们需要在age属性变化前做点什么 willSet { print ( "Will set an new value /(newValue) to age" ) } //我们需要在age属性发生变化后,更新一下nickName这个属性 didSet { print ( "age filed changed form /(oldValue) to /(age)" ) if age<10 { nickName = "Little" } else { nickName = "Big" } } } func toString() -> String { return "Full Name: /(fullName) " + ", Age: /(age) " } } var me = People () me.firstName = "Zhang" me.lastName = "San" me.age = 20 print (me.toString()) |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
“0元购”智元灵犀X1机器人,软硬件全套图纸和代码全公开!资料免费下载!
3959 浏览 2 评论
1405 浏览 0 评论
【实操文档】在智能硬件的大模型语音交互流程中接入RAG知识库
6782 浏览 1 评论
防止AI大模型被黑客病毒入侵控制(原创)聆思大模型AI开发套件评测4
1099 浏览 0 评论
不可错过!人工神经网络算法、PID算法、Python人工智能学习等资料包分享(附源代码)
3415 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-25 16:04 , Processed in 0.547006 second(s), Total 71, Slave 54 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号