【发布时间】:2017-08-07 20:23:48
【问题描述】:
刚刚安装了最新的 XCode 版本,它在 AVCapturePhotoOutput 类中提供了一些更改,我想知道如何获取支持的 flash 模式列表。在以前的版本中,我使用了supportedFlashModes 属性,该属性不再可用
open var __supportedFlashModes: [NSNumber] { get }
【问题讨论】:
刚刚安装了最新的 XCode 版本,它在 AVCapturePhotoOutput 类中提供了一些更改,我想知道如何获取支持的 flash 模式列表。在以前的版本中,我使用了supportedFlashModes 属性,该属性不再可用
open var __supportedFlashModes: [NSNumber] { get }
【问题讨论】:
我猜新的 Swiftified supportedFlashModes 属性已在计划中,但尚未在 beta 5 中完成。
open var supportedFlashModes: [AVCaptureDevice.FlashMode] { get }
直到我的猜测得到证实(可能是否定的),您可以使用__supportedFlashModes。它没有被删除,只是重命名。
(一些测试版包含这种正在建设中的重命名。)
您最好发送错误报告,让 Apple 了解此问题。
编辑 似乎 iOS 11 SDK/Xcode 9.1 已经修复了这个问题,Xcode 9.1 beta 的发行说明说:
- 现在可以使用以下 AVFoundation API:
AVCaptureDevice.Format.supportedColorSpacesAVCaptureDevice.supportedFlashModesAVCapturePhotoOutput.availablePhotoPixelFormatTypesAVCapturePhotoOutput.availableRawPhotoPixelFormatTypesAVCapturePhotoSettings.availablePreviewPhotoPixelFormatTypes之前修改为使用双下划线作为 应修改解决方法以使用这些公共符号或应用 可能会被 App Store 拒绝。
(添加了粗体。)
【讨论】:
__-leaded 属性的任何 Swiftified 替代品。 (Apple's reference page 缺少此类属性的 Swift 版本。希望 Apple 的审核团队不会将此视为使用私有 API,但未得到证实。
__xx API。见这里:forums.developer.apple.com/thread/86810
Apple 相机开发团队确认 Swift 版本的 API 无意中被排除在 Xcode 9 版本之外。
直到修复必须使用__supportedFlashModes
请看这里:https://forums.developer.apple.com/thread/86810 顺便说一句,其他一些 AVFoundation API 也受到影响。
【讨论】: