您的位置:首页 > 移动开发 > Swift

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

2017-07-11 09:21 531 查看

一、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
//    }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  swift