说明:Swift实际开发中一般不会重写setter和getter方法,这里仅供参考和了解。
class Person: NSObject {
//getter和setter
//仅供延时,日常开发不用
var _name: String?
var name: String?{
get{
//返回成员变量
return _name
}
set{
//设置成员变量
_name = newValue
}
}
//只读属性的一般写法
var title: String{
//只重写了get方法,没重写set方法,所以外界不能赋值,只能是只读属性
get{
return "Mr" + (name ?? "")
}
}
//只读属性的简写
//又称为计算型属性,本身不保存内容,每一次都是通过计算获取结果。
//类似于一个函数:没有参数,但一定有返回值
var title2: String{
return "Mr" + (name ?? "")
}
}
这里顺便说一下懒加载和计算型属性的区别:
计算型属性:
- 不分配独立的空间保存计算结果
- 每次通过 self.属性名 都会执行
- 像是一个函数,不过这个函数不能接受参数,但是有返回值
懒加载:
-在第一次调用时,执行闭包并且分配空间存储闭包返回的竖直
- 会分配独立的存储空间
- 和OC不同的是,lazy修饰的属性即使被置为nil也不会再次调用
网友评论