是否可以从iOS读取QR码的纠错值?



所有二维码都定义了一个纠错级别,由左下角的两个"位/像素"定义(请参阅此处了解更多详细信息(。虽然我知道如何在Swift中扫描二维码,但我不知道如何获得我扫描的代码的纠错。

这是必要的,因为我们的应用程序正在尝试扫描,然后以编程方式重新创建扫描的二维码。

这是我们当前的二维码,我们会收到成功扫描二维码的通知,但我看不出有任何方法可以获得二维码的详细信息,只有成功扫描的结果。。。

extension QRCodeScannerViewController : AVCaptureMetadataOutputObjectsDelegate {
func metadataOutput(_ output: AVCaptureMetadataOutput, didOutput metadataObjects: [AVMetadataObject], from connection: AVCaptureConnection) {
guard let metadataObject = metadataObjects.first,
let readableObject = metadataObject as? AVMetadataMachineReadableCodeObject,
let stringValue = readableObject.stringValue else {
return
}
captureSession.stopRunning()
performSegue(withIdentifier: "ShowResults", sender: stringValue)
}
}

通过查看文档,我还看到了CIQRCodeDescriptor(https://developer.apple.com/documentation/coreimage/ciqrcodedescriptor)确实具有我们正在寻找的值,但我不确定如何获得要检查的实例。

Duh!它就在我面前!

if let qrCodeDescriptor = readableObject.descriptor as? CIQRCodeDescriptor{
switch qrCodeDescriptor.errorCorrectionLevel {
case .levelL : print("L")
case .levelM : print("M")
case .levelH : print("H")
case .levelQ : print("Q")
}
}

最新更新