我收到了上述错误,并尝试通过添加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 :(得分: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错误
答案 1 :(得分:0)
您正在编写Swift代码。不是Java或C ++代码。例外情况有所不同。您需要对可以抛出的单个调用使用try,而不是对于大块代码。
我建议您下载免费的Swift 2书籍,并了解Swift 2中的异常如何工作。与其他语言的相似性只是肤浅的。