【发布时间】:2018-05-02 05:20:23
【问题描述】:
我是一个初学者,我有点理解 Lazy Var vs. Let。我注意到它在使用 Lazy Var 时节省了大量的内存使用,尤其是与 ImageViews 一起使用。但是到目前为止我看到的教程和指南并不经常使用 Lazy Var,所以我怀疑这是一种不好的做法,而且我忽略了一些东西。
我做了一些研究,了解到 Lazy 不是“线程安全的”,但我不明白这是什么意思。我已经看到了很多优点和缺点,但我无法得出任何结论,尤其是因为我的知识非常有限。
在创建 UIView 时,什么时候可以(或更好)使用 Lazy Var 与 Let?
lazy var profileImageView: UIImageView = {
let imageView = UIImageView(image: #imageLiteral(resourceName: "page1"))
imageView.translatesAutoresizingMaskIntoConstraints = false
imageView.contentMode = .scaleAspectFit
return imageView
}()
【问题讨论】:
-
这是对
lazy var是什么的较早(看起来是 Swift 1)的解释。具体查看何时使用它的部分:mikebuss.com/2014/06/22/lazy-initialization-swift 现在,查看您的问题右侧栏中的三个相关链接 suggest 它们与您的相似,我发现没有 真的回答问题 - 就像上面的链接 - 关于*何时使用每个。他们要么解释lazy是什么(以及为什么你必须使用var或为什么某些东西不能构建。我对此表示赞成,希望这里的人可以给你一个好问题的好答案