2015-11-14 33 views
-1

我收到上述錯誤,並試圖通過在do/catch塊中添加來修改此錯誤。出於某種原因,錯誤不會消失。有誰知道這可能是爲什麼?錯誤:'調用可能拋出但未標記嘗試錯誤未處理'

override func viewDidAppear(animated: Bool) { 
    super.viewWillAppear(animated) 

    captureSession = AVCaptureSession() 
    captureSession?.sessionPreset = AVCaptureSessionPreset1920x1080 

    let backCamera = AVCaptureDevice.defaultDeviceWithMediaType(AVMediaTypeVideo) 

    do { 

     let input = AVCaptureDeviceInput(device: backCamera) 

     captureSession?.addInput(input) 

     stillImageOutput = AVCaptureStillImageOutput() 
     stillImageOutput?.outputSettings = [AVVideoCodecKey : AVVideoCodecJPEG] 

     if (captureSession?.canAddOutput(stillImageOutput) != nil){ 
      captureSession?.addOutput(stillImageOutput) 

      previewLayer = AVCaptureVideoPreviewLayer(session: captureSession) 
      previewLayer?.videoGravity = AVLayerVideoGravityResizeAspect 
      previewLayer?.connection.videoOrientation = AVCaptureVideoOrientation.Portrait 
      oview.layer.addSublayer(previewLayer!) 
      captureSession?.startRunning() 

     } 

    } catch { 

    } 

} 
+0

而不是做catch使用try catch和catch應該像catch(NSException * ex){ –

回答

0

的線索是在錯誤描述:Error: 'Call can throw but is not marked with try and error not handled'

您沒有標明可與try

我不叫哪你在那裏投丟了電話,但找到一個並在其前面放置try的人。如果您分配一個值,儘量需求走就=

編輯

只是看着在文檔的右側,看起來它是你的

let input = AVCaptureDeviceInput(device: backCamera) 

語句可以拋出。把一試=這樣

let input = try AVCaptureDeviceInput(device: backCamera) 

後,然後你就可以print(error)裏面的你catch看到任何potentiel錯誤

0

你正在寫SWIFT CODE。不是Java或C++代碼。例外的工作方式不同。您需要嘗試使用可能拋出的單個調用,而不是用於大塊代碼。

我建議您下載免費的Swift 2書籍,並瞭解Swift 2中的異常工作方式。與其他語言的相似性只是膚淺的。

相關問題