[英]Error Handling with Swift 2
我的代碼片段似乎有一個錯誤處理問題:
var err : NSError? = nil
captureSession.addInput(AVCaptureDeviceInput(device: captureDevice, error: &err))
if err != nil {
print("error: \(err?.localizedDescription)")
}
而且我在captureSession行上不斷收到以下錯誤:
無法使用類型為((device:AVCaptureDevice ?, error:inout NSError?)'的參數列表來調用類型'AVCaptureDeviceInput'的初始化程序
我嘗試使用此方法解決問題:
let err : NSError?
do {
err = try captureSession.addInput(AVCaptureDeviceInput(device: captureDevice))
} catch _ {
err = nil
}
但是在do-catch語句的第一行出現了另一個錯誤:
無法將'Void'類型的值(又名'()')分配給'NSError類型的值?
知道可能出了什么問題嗎? 謝謝
AVCaptureDeviceInput
有一個名為init(device:)
初始化init(device:)
,如果無法初始化,則會throws
outError
。
因此,您可以try! AVCaptureDeviceInput(device: someDevice)
try! AVCaptureDeviceInput(device: someDevice)
表示您“承諾”它不會失敗(如果崩潰,它將崩潰)。 或者您可以嘗試/趕上
do {
try AVCaptureDeviceInput(device: someDevice)
} catch let error as NSError {
print(error)
}
//更新swift3這就是我們如何在swift3上處理它的方法
var input = AVCaptureDeviceInput()
do {
input = try AVCaptureDeviceInput(device: device)
self.captureSession.addInput(input)
}
catch {
// error
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.