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) {

}

 

 

仅供参考。

相关文章
相关标签/搜索