初始化的优点或区别是什么:
lazy var hintView: HintView = {
let hintView = HintView()
return hintView
}()
Run Code Online (Sandbox Code Playgroud)
而不是简单地使用:
var hintView = HintView()
Run Code Online (Sandbox Code Playgroud)
(HintView
是:class HintView: UIView {}
)
非常感谢帮助.
Raj*_*ari 64
让我们实际做到这一点.查看截图
我刚刚停止了调试器viewDidLoad
.你可以看到它secondHintView
有一个内存,因为它不是懒惰的存储,但hintView
仍然是零,因为它是一个懒惰的.一旦使用/访问惰性变量,就会分配内存.
懒惰也应该是var.
Luc*_*tti 26
懒惰的财产有一些优势,而不是存储的财产.
self
在一个懒惰的属性的闭包内使用一个懒惰的存储特性,当它第一次被访问的计算只。
这var
不let
,因为该值不是在初始化过程中进行初始化。稍后进行计算。这就是为什么惰性存储属性必须是a variable
而不是a的原因constant
。
lazy var hintView: HintView = {
let hintView = HintView()
return hintView
}()
let h = hintView
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,无论何时hintView
首次访问,都将closure
执行为其分配的值,并将该值返回并存储在中h
。
有关更多信息,请参考:
归档时间: |
|
查看次数: |
12913 次 |
最近记录: |