Пытаюсь использовать dispatch_async, в котором мне нужен вызываемый вызов, но новая обработка ошибок Swift и вызовы методов сбивают меня с толку, если кто-нибудь может показать мне, как это сделать правильно, или указать мне правильное направление, я был бы очень признателен.
Код:
func focusAndExposeAtPoint(point: CGPoint) {
dispatch_async(sessionQueue) {
var device: AVCaptureDevice = self.videoDeviceInput.device
do {
try device.lockForConfiguration()
if device.focusPointOfInterestSupported && device.isFocusModeSupported(AVCaptureFocusMode.AutoFocus) {
device.focusPointOfInterest = point
device.focusMode = AVCaptureFocusMode.AutoFocus
}
if device.exposurePointOfInterestSupported && device.isExposureModeSupported(AVCaptureExposureMode.AutoExpose) {
device.exposurePointOfInterest = point
device.exposureMode = AVCaptureExposureMode.AutoExpose
}
device.unlockForConfiguration()
} catch let error as NSError {
print(error)
}
}
}
Предупреждение:
: Неверное преобразование из бросающей функции типа '() throws -> _' в не бросающую функцию типа '@convention(block) () -> Void'