一、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
//oc中有一个rendonly -> swift中只写 getter 方法就表示此属性只读了
var title:String?{
get{
return "MR + \(name ?? "")"
}
}
//也可以不要get方法 直接return
//只读属性称为计算型属性;本身不保存内容,通过计算获取;类似于一个无参数有返回值的函数
var age:String?{
return "MR + \(name ?? "")"
}
//重写didset方法根据模型设置ui界面
var model:Model?{
didSet{
name = "传入的model.属性"
}
}
四、懒加载(lazy)
//重写didset方法根据模型设置ui界面
var model:Model?{
didSet{
name = "传入的model.属性"
}
}
//实现懒加载;作用能够延迟创建,需要的时候才加载,可以减少解包的烦恼
//懒加载只有第一次调用才执行;当属性再次置为nil创建时不会执行懒加载;而oc的懒加载可以
private lazy var label:CustomLabel = CustomLabel()
//懒加载实际是一个闭包 完整写法
// lazy var label = {
// () -> CustomLabel in
//
// let l = CustomLabel()
//
// return l
// }