Swift 中重写属性的set和get方法
- Swift中如何重写属性的set和get方法
- set和get方法的本质是什么
set和get方法紧跟着属性后面写,很紧凑,也清楚。
class Person: NSObject {
var _name: string?
var name: String? {
get {
return _name
}
set {
_name = newValue
}
}
}
这和OC中的声明一个带 _ 的变量,然后通过set、get方法给这个变量赋值同理。
为什么不直接返回name或者直接给name赋值呢,而是通过另外一个变量 _name 来存储真正的值呢?
如果这样
class Person: NSObject {
var name: String? {
get {
return self.name
}
set {
self.name = newValue
}
}
}
会陷入 self.name 的死循环的哦,所以不能这样写。
本质上 _name 这个变量存储真正的值,name 这个变量更多的作用相当于提供了一个方法,提供了其set和get方法,通过他的set和get方法给 _name 赋值。这一点和OC是一样一样的。
本文详细介绍了Swift中如何重写属性的set和get方法,解释了这些方法的本质,并通过实例对比了直接使用属性与通过set、get方法访问的区别。

9171

被折叠的 条评论
为什么被折叠?



