刚刚安装了最新的XCode版本,它提供了AVCapturePhotoOutput类的一些更改,我想知道如何获取支持闪存模式的列表。在之前的版本中,我使用了supportedFlashModes
属性,该属性不再可用
open var __supportedFlashModes: [NSNumber] { get }
答案 0 :(得分:2)
我想新的Swiftified supportedFlashModes
属性已经计划好,但尚未在测试版5中完成。
open var supportedFlashModes: [AVCaptureDevice.FlashMode] { get }
直到有一天我的猜测将被确认(可能是否定的),您可以使用__supportedFlashModes
。它没有删除,只是重命名。
(有些beta包含这种正在构建的重命名。)
您最好发送错误报告,以防Apple知道此问题。
修改强> 似乎iOS 11 SDK / Xcode 9.1修复了这个问题,Xcode 9.1 beta的发行说明说:
- 现在提供以下AVFoundation API:
AVCaptureDevice.Format.supportedColorSpaces
AVCaptureDevice.supportedFlashModes
AVCapturePhotoOutput.availablePhotoPixelFormatTypes
AVCapturePhotoOutput.availableRawPhotoPixelFormatTypes
AVCapturePhotoSettings.availablePreviewPhotoPixelFormatTypes
以前修改过的代码使用双下划线作为 应修改变通方法以使用这些公共符号或应用程序 可能会被App Store拒绝。
(添加了大胆的风格。)
答案 1 :(得分:0)
Apple相机开发团队确认,Swift版本的API无意中被排除在Xcode 9版本之外。
在修复之前必须使用__supportedFlashModes
见这里:https://forums.developer.apple.com/thread/86810 BTW其他一些AVFoundation API也受到影响。