Пытается использовать dispatch_async, в котором мне нужен разворачиваемый вызов, но новая обработка ошибок Swift и вызовы методов меня путают, если кто-нибудь может показать мне, как это сделать правильно, или указать я в правильном направлении, я был бы очень признателен.dispatch_async() с throwables swift 2 Xcode 7
Код:
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)
}
}
}
Предупреждение:
: Invalid преобразования метания функции типа '() броски -> _', чтобы не-бросание типа функции «@convention (блок)() -> Void '
Я верю, что вы нашли ошибку, хотя я не совсем уверен. На всякий случай, я подаю его. – matt
безупречное спасибо! –
@matt это не ошибка, уловка должна быть исчерпывающей, чтобы закрытие не бросалось (чего нет, «пусть ошибка как NSError» не поддается) - см. Мой ответ здесь -> http: // stackoverflow. com/questions/31599615/how-to-throw-errors-in-a-clos-in-swift/31613855 # 31613855 – fqdn