gpt4 book ai didi

ios - 在 Swift 中使用 "= {}()"声明类属性的性质是什么?

转载 作者:搜寻专家 更新时间:2023-11-01 05:48:20 25 4
gpt4 key购买 nike

我有一个来自一些示例代码的 Swift 类,其中有一个属性 captureSession 声明如下:

private lazy var captureSession: AVCaptureSession = {
let session = AVCaptureSession()

guard
let backCamera = AVCaptureDevice.default(for: .video),
let input = try? AVCaptureDeviceInput(device: backCamera)
else { return session }
session.addInput(input)
return session
}()

我不认为 captureSession 是计算属性,也不是闭包。那又是什么呢?

最佳答案

captureSession 是延迟属性,但 ={}() 与延迟初始化无关。它是使用闭包或函数设置默认属性值。这是一个例子。

let titleLabel: UILabel = {
let label = UILabel()
label.numberOfLines = 0
label.textColor = UIColor.textColor
label.font = UIFont(name: "HelveticaNeue-Medium", size: 14)
return label
}()

您可以在本 document 的末尾找到更多信息.

关于ios - 在 Swift 中使用 "= {}()"声明类属性的性质是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53425842/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com