用于条件绑定(bind)的 Swift 初始化程序必须具有可选类型,而不是 '[AVCaptureDevice]'

标签 swift optional-binding

我的 swift 项目中有以下代码

if let availabeDevices = AVCaptureDevice.DiscoverySession(deviceTypes: [.builtInMicrophone,
.builtInWideAngleCamera], mediaType: AVMediaType.video, position: .back).devices {

            captureDevice = availabeDevices.first
        }

当我运行此代码时,它在 if 行上给出一个错误,内容如下:

Initializer for conditional binding must have Optional type, not '[AVCaptureDevice]'

我尝试在 .devices 之后添加 ?,但出现以下错误:

Cannot use optional chaining on non-optional value of type '[AVCaptureDevice]'

我该怎么办?

最佳答案

使用下面的行。

if let captureDevice = AVCaptureDevice.DiscoverySession(deviceTypes: [.builtInMicrophone, .builtInWideAngleCamera], 
mediaType: AVMediaType.video, 
position: .back).devices.first {
            self.captureDevice = captureDevice
        }

关于用于条件绑定(bind)的 Swift 初始化程序必须具有可选类型,而不是 '[AVCaptureDevice]',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55966420/

相关文章:

ios - 是否可以进行自定义反向地理编码?

ios - 如何将对象作为 Objective C init 中的依赖项传递?

string - Swift 2.0 字符串到 NSDate

ios - 使用 https 或编码/解码 db blob 图像加载时间过长

swift - 在 Swift 中,当每对元素都是字符串时,如何迭代数组获取 2 个变量?和一个字符串

ios - 在类的范围内显式创建 View 对象与 loadView 函数之间有区别吗?

swift - Swift 2.2 上的可选绑定(bind)错误?

用于条件绑定(bind)的 Swift 初始化程序必须具有可选类型,而不是 '[AVCaptureDevice]'

ios - 即使在可选绑定(bind)之后,可选字符也不会被删除

swift3 - OR 可选绑定(bind)的条件?