Der Versuch, dispatch_async zu verwenden, in dem ich einen anwählbaren Anruf benötige, aber Swifts neue Fehlerbehandlung und Methodenaufrufe verwirren mich, wenn mir jemand zeigen könnte, wie man das richtig macht oder zeigt Ich in die richtige Richtung, ich würde es sehr schätzen.dispatch_async() mit throwables swift 2 Xcode 7
Code:
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)
}
}
}
Warnung:
: Ungültige Konvertierung von Funktion vom Typ werfen '() wirft -> _' zu nicht-Wurf Funktionstyp ‚@convention (Block)() -> Void '
Ich glaube, was Sie gefunden haben, ist ein Fehler, obwohl ich mir nicht ganz sicher bin. Nur für den Fall, ich füge es ein. – matt
perfekt danke! –
@matt es ist kein Fehler, der Fang muss erschöpfend sein, damit die Schließung nicht werfen (was es nicht ist, "lass Fehler als NSError" ist nicht möglich) - siehe meine Antwort hier -> http: // stackoverflow. com/questions/31599615/how-to-throw-Fehler-in-ein-Schließung-in-swift/31613855 # 31613855 – fqdn