初始化的优点或区别是什么:

lazy var hintView: HintView = {
        let hintView = HintView()
        return hintView
}()

不要简单地使用:

var hintView = HintView()

(HintView是:class HintView: UIView {})

非常感谢您的帮助.

推荐答案

惰性存储属性与存储属性

拥有惰性属性而不是存储属性有一些好处.

  1. 只有在读取了lazy属性后,才会执行与该属性关联的闭包.因此,如果由于某种原因,该属性没有被使用(可能是因为用户的某些决定),您可以避免不必要的分配和计算.
  2. 可以使用存储属性的值填充惰性属性.
  3. 可以在惰性属性的闭包中使用self

Swift相关问答推荐

变量捕获:变量在函数闭包中的行为

SwiftData查询按日期排序的项的属性数组

如何在visionOS中进行购买?&# 39;购买(选项:)在visionOS中不可用

将`@Environment`值赋给`Binding`参数

如何写一个;风格;视图修饰符,它会影响特定类型的所有嵌套视图?

如何根据 DatePicker 中选定的日期实现 TabView 页面切换?

使用`JSONSerialiser`时,省略通用可选项

为什么这段Swift读写锁代码会导致死锁?

在 Swift 5.7 中使用协议作为类型时什么时候需要写 `any`

Swift:结果的失败类型不能是协议 - Type 'any ShadowError' cannot conform to Error

覆盖一个子元素的 HStack 对齐方式

如何在 switch case 模式语句中使用 Swift 文字正则表达式?

获取具有关联类型的协议的self

如何有条件地依赖桌面与 iOS 的系统库?

如何在不阻塞 UI 更新的情况下使用 Swift Concurrency 在后台执行 CPU 密集型任务?

iOS 判断应用程序是否可以访问麦克风

如何在 Swift 中将对象归零

Swift 中惰性 var 的优势是什么

如何在 GCD 中停止 DispatchWorkItem?

iOS:如何检测用户是否订阅了自动更新订阅