swift学习 -> 计算型属性(rendonly)、didSet、懒加载(lazy)

xiaoxiao2021-02-28  74

一、gitter setter

在oc中都有git、和set方法,swift同样也有;已name:string? 为列! //gitter setter 日常开发不用 private var _name:String? var name:String?{ get{ //返回 _成员变量 return _name } set{ //使用 _成员变量 记录 值 _name = newValue } }

二、 计算型属性、rendonly

//oc中有一个rendonly -> swift中只写 getter 方法就表示此属性只读了 var title:String?{ get{ return "MR + \(name ?? "")" } } //也可以不要get方法 直接return //只读属性称为计算型属性;本身不保存内容,通过计算获取;类似于一个无参数有返回值的函数 var age:String?{ return "MR + \(name ?? "")" } 三、didset

//重写didset方法根据模型设置ui界面 var model:Model?{ didSet{ name = "传入的model.属性" } } 四、懒加载(lazy)

//实现懒加载;作用能够延迟创建,需要的时候才加载,可以减少解包的烦恼 //懒加载只有第一次调用才执行;当属性再次置为nil创建时不会执行懒加载;而oc的懒加载可以 private lazy var label:CustomLabel = CustomLabel() //懒加载实际是一个闭包 完整写法 // lazy var label = { // () -> CustomLabel in // // let l = CustomLabel() // // return l // }
转载请注明原文地址: https://www.6miu.com/read-49692.html

最新回复(0)