Swift setget方法

Swift setget方法,第1张

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是一样一样的。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/996966.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-21
下一篇2022-05-21

发表评论

登录后才能评论

评论列表(0条)

    保存