一步一步找问题:
- 如果你的App是在所有的设备都会崩溃,你首先应该考虑到是否开启了相机权限以及是否在plist文件里添加了描述信息(相信大多数人都不会在这里出错);
- 如果你的App还是在所有的设备都会崩溃,并且报了下面这个错误:
reason:'*** -[AVCaptureMetadataOutput setMetadataObjectTypes:] - unsupported type found. Use -availableMetadataObjectTypes.'
那么这时可以检查你的
[outPut setMetadataObjectTypes:@[AVMetadataObjectTypeQRCode]];
这步操作是否在[session addOutput:outPut];
之后; - 如果你的App只是在较老的设备崩溃,并且报了下面这个错误:
reason:'*** -[AVCaptureMetadataOutput setMetadataObjectTypes:] - unsupported type found. Use -availableMetadataObjectTypes.'
根据错误原因,发现[outPut availableMetadataObjectTypes];
这个数组是空的。那么你可以尝试设置把session.sessionPreset = AVCaptureSessionPresetHigh;
之后再运行。 -
另外,保险起见应该加一层判断:
- 好吧、希望能帮到你。