2017-04-04 15 views
1

我使用Github上項目MMSCameraViewController在項目和近期以來的Xcode 8.3更新編譯器會引發錯誤:類型任何不符合協議順序

/MMSCameraViewController/Classes/MMSCameraViewController.swift:448 :42:輸入'[Any] !!'不符合協議「序列」

for port in (connection as AnyObject).inputPorts { // <----- this line throws error 
    if (port as! AVCaptureInputPort).mediaType == AVMediaTypeVideo { 
     videoConnection = connection as! AVCaptureConnection 
     break connectionloop 
    } 
} 

我搜索了關於最近出現的位置類型的任何序列職位的其他職位,但沒有幫助我(我是新來的斯威夫特)。任何想法如何解決這個問題?

非常感謝!

Martin

回答

1

因爲AnyObject不是你想要的,所以錯誤是非常清楚的。

for port in (connection as! AVCaptureConnection).inputPorts { 
    if (port as! AVCaptureInputPort).mediaType == AVMediaTypeVideo { 
      videoConnection = connection as! AVCaptureConnection 
      break connectionloop 
    } 
} 

圖書館應該通過每一個端口,以便AnyObject沒有任何

1

我假設你的連接是AVCaptureConnection類,所以你不應該將它轉換爲AnyObject:

// Change first line to this 
for port in connection.inputPorts { 
    // Also to make it more secure (and avoid force casting) 
    if let port = port as? AVCaptureInputPort, 
     port.mediaType == AVMediaTypeVideo { 

     // You can delete force casting also here 
     videoConnection = connection 
     break connectionloop 
    } 
} 
相關問題