Swift5升級遇到的AVCapturexxxDelegate的坑,寫法換了

升級到swift5以後,遇到關於AVCapture的兩個代理都失效了,swift

找了一圈,發現緣由是代理方法寫法變了,若是不替換,代理事件就收不到了ide

 

解決方法:spa

替換新寫法就能夠了代理

 

 

我這邊只舉例我遇到的兩個例子,若是你有類似現象,能夠參考看有沒有相似問題。code

一、AVCaptureMetadataOutputObjectsDelegateblog

以前寫法:事件

func captureOutput(_ captureOutput: AVCaptureOutput!, didOutputMetadataObjects metadataObjects: [Any]!, from connection: AVCaptureConnection!) {

}

新寫法:io

func metadataOutput(_ output: AVCaptureMetadataOutput, didOutput metadataObjects: [AVMetadataObject], from connection: AVCaptureConnection) {

}

 

 

二、AVCaptureVideoDataOutputSampleBufferDelegateclass

以前寫法:meta

func captureOutput(_ captureOutput: AVCaptureOutput!, didOutputSampleBuffer sampleBuffer: CMSampleBuffer!, from connection: AVCaptureConnection!) {

}

新寫法:

func captureOutput(_ output: AVCaptureOutput, didOutput sampleBuffer: CMSampleBuffer, from connection: AVCaptureConnection) {

}

 

 

僅供參考。

相關文章
相關標籤/搜索