swift3.2升级到swift4.0 扫码不走回调方法

本文介绍从Swift 3.2升级到Swift 4.0后,由于苹果改变了扫码的代理方法参数导致的回调问题解决方案。更新前后的代理方法分别为:`captureOutput(_:didOutputMetadataObjects:from:)` 和 `captureOutput(_:didOutputSampleBuffer:from:)` 旧版,`metadataOutput(_:didOutput:from:)` 和 `captureOutput(_:didOutputSampleBuffer:from:)` 新版。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

xcode升级到9.0 swift改到swift4.0之后扫码一直不走回调 ,研究了好长时间,发现苹果把扫码的代理方法的参数变了之前的方法

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

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

这是之前swift3.2的代理方法,swift4.0之后不会走这两个代理方法,原因是现在代理方法不一样了

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

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


swift4.0的两个代理方法对比之前的3.2方法,可以发现现在方法的参数变了

将之前的两个方法的参数改好,扫码就可以正常用了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值