2014-10-22 1 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 { 
} 

который woul не имеет смысла.

Чтобы исправить это, вы должны использовать опциональный связывания:

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

    } 
} 
+0

@ Антонио, спасибо за идею замены «ноль» на переменную как способ проверки здравомыслия, который использует дополнительные опции! – rob5408

0

Просто дополняя ответ Антонио, если вы 100% уверены, что в определенной части кода вашего опциональной не nil, вы можете просто использовать ! прямо в вашем var, чтобы избежать проверки if let.

for connection in stillImageOutput!.connections { 

} 

 Смежные вопросы

  • Нет связанных вопросов^_^