No se puede asignar el valor del tipo '() -> Void' a '(() -> Void)!'

Desde que uso Swift 3 aparece el siguiente error ..

No se puede asignar el valor de tipo '(LLSimpleCamera ?, NSError?) -> Void' para escribir '((LLSimpleCamera ?, Error?) -> Void)!'

¿Alguien sabe qué hacer? aquí está mi código …

camera.onError = { (camera: LLSimpleCamera?, error: NSError?) -> Void in print("Camera error: \(error)") if error.domain == LLSimpleCameraErrorDomain { if error.code == Int(LLSimpleCameraErrorCodeCameraPermission.rawValue) || error.code == Int(LLSimpleCameraErrorCodeMicrophonePermission.rawValue) { let alertVC = UIAlertController(title: "Ooops!", message: "We need permission for the camera. Please go to your settings.", prefernetworkingStyle: .alert) let okAction = UIAlertAction(title: "OK", style: .default, handler: nil) let settingsAction = UIAlertAction(title: "Settings", style: .default) { (action) in UIApplication.shanetworking.openURL(URL(string: UIApplicationOpenSettingsURLString)!) } alertVC.addAction(okAction) alertVC.addAction(settingsAction) self.present(alertVC, animated: true, completion: nil) } } } 

Swift 3 maps Objetivo C NSError tipo al protocolo Error ( también conocido como ErrorType en Swift 2 ).

Entonces, en la list de parameters de cierre, espera Error como el tipo de segundo parámetro en lugar de NSError .

Pero dentro del cierre, debe escribir el parámetro de error caso en NSError si desea usar .domain / .code / etc.