swift中set和get 的书写规范
var c:Int {
get{
// 这里 不论是 c 还是 self.c 都会造成 crash 原因是方法的死循环
// 而且 不能像 OC 中 写上 _c
return 1
}
set{
// 我们测试 写上 self.c = newValue 和 不写 都会造成 crash
// 而且 不能像 OC 中 写上 _c
a = newValue
print("Recived new value", newValue, " and stored into 'A' ")
}
}
// 使用了 外部的一个变量来重写了这个 方法
var _tittle:String?
var tittle: String?{
set{
_tittle=newValue
}
get{
return _tittle
}
}
// 如果只重写 get 方法,默认为 readOnly
var age:Int?{
return 20
}
// swift 中有储值属性和计算属性,一般 我们只是给计算属性添加 get set 方法
// 在set、get方法中有相应的计算
var num:Int = 0
var ddd:Int {
get{
return num+11
}
set{
num = num + newValue
}
}
// 存储属性: 就是存储一个变量 或 常量 懒加载也属于存储型属性 类似于OC中的方法
let aaa = "aaa"
lazy var ccc:[TestModel] = {
let testModel = TestModel()
var arr = [TestModel]()
for _ in 0...99{
arr.append(testModel)
}
//
return arr
}()
// swift 中使用了willset 和 didSet 这连个特性 来见识属性的除初始化之外的 属性值变化
// 和 OC 比较,我们可以在didSet 里面执行一些改变UI的操作
var newAge:String?{
willSet{
//
print("===========")
}
didSet{
print("did set " + newAge!)
}
}
网友评论