初始化的优点或区别是什么:
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 次 |
| 最近记录: |