簡體   English   中英

Swift 2的錯誤處理

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM