在新的 Xcode 12 中,出现错误:Value of type 'AVCapturePhotoOutput' has no member 'supportedFlashModes'当我尝试访问https://developer.apple.com/documentation/avfoundation/avcapturephotooutput/1648766-supportedflashmodes 有
什么建议吗?
小智 9
似乎是 Xcode 12 上的错误,但您可以使用宏条件解决它:
#if !targetEnvironment(simulator)
guard stillImageOutput?.supportedFlashModes.contains(mode) == true else { return }
//rest of your code
#endif
Run Code Online (Sandbox Code Playgroud)
正如@Andy Heard所写:
我们的歉意。对于使用 Swift 3.2 或 Swift 4.0 的应用程序,多个 AVFoundation 捕获 API(外部协议的公共扩展)在 Xcode 9 中无意中被标记为私有。
以下 AVFoundation API 暂时不可用:
AVCaptureDevice.Format.supportedColorSpaces
AVCaptureDevice.supportedFlashModes
AVCapturePhotoOutput.availablePhotoPixelFormatTypes
AVCapturePhotoOutput.availableRawPhotoPixelFormatTypes
AVCapturePhotoSettings.availablePreviewPhotoPixelFormatTypes作为解决方法,您可以通过在每个 API 前面添加双下划线 ( ) 来使用这些 API 的 SwiftPrivate 版本
__。例如,更改AVCaptureDevice.Format.supportedColorSpaces为AVCaptureDevice.Format.__supportedColorSpaces.