iOS原生扫条形码意外闪退的问题
今天在公司项目遇到了一个问题,在客户的iPhone X设备上扫缩得很小的条形码时会闪退,而且是必定闪退。但在我自己这边但iPhone 6s上无论如何都复现不出来这个bug,而且没有办法使用模拟器调试。
试着对闪退对情况进行了分析,问题是出在扫码成功之后。
检查了一下 - (void)captureOutput:(AVCaptureOutput *)output didOutputMetadataObjects:(NSArray<__kindof AVMetadataObject *> *)metadataObjects fromConnection:(AVCaptureConnection *)connection;这个方法
发现公司的代码这边把扫码结果的字符串存到了字典中,虽然我自己这边并没有出现字符串为nil的情况,但抱着试一试的想法,加了一个对字符串为nil的检测,打包给客户调试。
if (!barCodeString) barCodeString = @"";
[resultDict setObject:barCodeString forKey:@"text"];
发现没有再闪退了,只是扫码内容没有被识别出来。
不过只是勉强解决了闪退的问题,为什么会识别错误我没有办法调试所以还是没能搞清楚。