ios7自带的扫描二维码,会吃重复回调,以前是这样写的关闭:
(void)stopQRCodeScan
{
if(timer){
[timer invalidate];
timer = nil;
}
// 1. 如果扫描完成,停止会话
if (_session) {
[_session stopRunning];
_session = nil;
}
// 2. 删除预览图层
[_preview removeFromSuperlayer];
_preview = nil;
_output = nil;
[_output setMetadataObjectsDelegate:nil queue:dispatch_get_main_queue()];
}
结果发现并不能真正的关闭,看了官方文档,后增加一句代码:- (void)stopQRCodeScan
{
if(timer){
[timer invalidate];
timer = nil;
}
// 1. 如果扫描完成,停止会话
if (_session) {
[_session removeOutput:_output];
[_session stopRunning];
_session = nil;
}
// 2. 删除预览图层
[_preview removeFromSuperlayer];
_preview = nil;
_output = nil;
[_output setMetadataObjectsDelegate:nil queue:dispatch_get_main_queue()];
}
问题就解决了,不会重复回调,重复push了