我的情况是我的属性getter引用了self
,并且我怀疑它会持有self
并且永远不会释放它。你能解释我是不是在制作在这种情况下错了?
private var storyboard: UIStoryboard {
get {
return UIStoryboard(name: "Login", bundle: Bundle(for: type(of:self)))
}
}
答案 0 :(得分:2)
你没有犯错 - 计算属性只不过是一种美化的方法/一对方法。就其本身而言,没有任何保留周期问题。
self
只是在调用计算属性的getter或setter时传递的隐式参数,并且将是正在访问该属性的实例 - 它不会被属性本身存储或捕获。