gpt4 book ai didi

ios - 条件绑定(bind)的初始化程序必须具有 Optional 类型,而不是 '[AVCaptureDevice]'

转载 作者:行者123 更新时间:2023-11-29 00:06:15 25 4
gpt4 key购买 nike

我正在努力为我的应用程序提供相机功能。我正在学习教程(AppCoda: https://www.appcoda.com/avfoundation-swift-guide/ )。我看过其他 S.O.答案并了解到语句的右侧(如下)必须是可选的才能解决错误。我如何将其设为可选并修复错误?

enter image description here

最佳答案

Optional 允许你在变量中有一个 nil。然后编译器会强制你在使用变量之前检查是否有值。但是,如果您没有可选的,这对您来说是一件好事 - 您不必检查值,因为它确保始终会有一个值。

因此,在您的情况下,您不希望那里有一个可选的,按如下方式重写您的代码:

let cameras = session.devices.flatMap { $0 }
guard !cameras.isEmpty else { throw CameraControllerError.noCamerasAvailable }

因为显然调用 session.devices.flatMap { $0 } 返回一个数组 [AVCaptureDevice],而不是可选数组 [AVCaptureDevice]?。因此编译器可以保证相机总是有一个数组值,而不是零。因此,您可以只防止空数组,这意味着没有摄像头(因为摄像头列表是空的)。

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

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