博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Object-C--->Swift之(十一)属性观察者
阅读量:6228 次
发布时间:2019-06-21

本文共 921 字,大约阅读时间需要 3 分钟。

属性观察者机制能让程序在属性被赋值时获得执行代码的机会,用来监视属性的除初始化之外的属性值变化,当属性值发生改变时可以对此作出响应

具体包括两个特殊的回调方法:

willSet(newValue):被观察的属性即将被赋值之前自动调用方法。

didSet(old Value):被观察的属性被赋值完成之后自动调用该方法。

观察的范围

除了延迟存储属性之外的所有存储属性(包括实例存储属性或类型存储属性)。

可通过重载方式为继承得到的属性(包括存储属性和计算属性)添加

属性观察者

定义语法格式

[修饰符] var 存储属性名:属性类型[=初始值]{ willSet(newValue){//属性即将被赋值之前自动执行的代码}didSet(oldValue){//属性被赋值完成之后自动执行的代码}}

说明:

willSet:willSet部分可定义一段执行性代码,被观察的属性即将被赋值之前自动执行这块代码。willSet部分可以显式制定一个形参名,该形参代表了该属性将被设置的新值。Swift也可以省略这个形参名,Swift将为该形参提供一个隐式形参名:newValue。

didSet:didSet部分可定义一段执行性代码,被观察的属性被成功赋值之后自动执行这块代码。didSet部分可以显式制定一个形参名,该形参代表了该属性将被修改之前的旧值。Swift也可以省略这个形参名,Swift将为该形参提供一个隐式形参名:oldValue。

class Person {    var age:Int=0        {        willSet{         if(newValue<0 || newValue>200)         {            print("你输入的有误,非人类呀")        }         else{            print("即将成功")            }        }        didSet{        print("已完成,原来的年龄为\(oldValue)")        }    }} var p=Person() p.age=1000

转载地址:http://uvina.baihongyu.com/

你可能感兴趣的文章
禁止IE7的页面缩放功能
查看>>
把DATATABLE,DS中的内容用HTML的方式显示
查看>>
了解SQL Server锁争用:NOLOCK 和 ROWLOCK 的秘密
查看>>
聊聊单元測试(一)——EasyMock
查看>>
关于Git的礼节
查看>>
使用 Chrome 来调试你的 Android App
查看>>
jQuery之Deferred对象详解
查看>>
Windows 设置时间同步
查看>>
VS2010 调试C++项目 fatal error LNK1123 错误解决办法
查看>>
EBS OAF 开发中的OAMessageRadioGroup控件
查看>>
调整linux的时钟
查看>>
ObjectOutputStream和ObjectInputStream
查看>>
博客增加二维码功能
查看>>
static作用
查看>>
TCP协议中的三次握手和四次挥手(图解)
查看>>
RDIFramework.NET V2.9版本 WinFom部分新增与修正的功能
查看>>
使用Xcode和Instruments调试解决iOS内存泄漏
查看>>
[翻译] MotionBlur
查看>>
在这些形式的验证码
查看>>
Android学习笔记(四十):Preference使用
查看>>