2014-10-22 65 views
3
@IBAction func button(sender : AnyObject) { 
    var videoConnection : AVCaptureConnection! 
    videoConnection = nil 
    var connection : AVCaptureConnection 
    var port : AVCaptureInputPort 
    var stillImageOutput : AVCaptureStillImageOutput? 

    for connection in stillImageOutput?.connections{ //this line is where the error is 

} 

}

我想拍攝照片與我的自定義相機和我收到此錯誤

回答

10

stillImageOutput是可選的 - 即使您正在使用可選的鏈接,它不能在for循環使用,因爲如果stillImageOutput是零,語句應該是:

for connection in nil { 
} 

竟被其沒有意義。

爲了解決這個問題,你必須使用可選的結合:

if let connections = x?.connections { 
    for connection in connections { 

    } 
} 
+0

@Antonio,感謝您用「nil」替代變量作爲使用可選項的健全性檢查代碼的方法! – rob5408 2014-11-23 00:19:08

0

只是補充安東尼的回答,如果你是100%肯定,在代碼的可選的特定部分是不是nil,你可以直接在您的var中直接使用!,以避免if let檢查。

for connection in stillImageOutput!.connections { 

}