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

Is it possible to read a QR code's error correction value from iOS?

所有二维码都定义了一个纠错级别,由左下角的两个'bits/pixels'定义(更多细节见here。)虽然我知道如何扫描[=中的二维码26=],我不知道的是如何获得我正在扫描的代码的纠错。

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

这是我们当前的代码,我们在其中收到成功扫描二维码的通知,但我看不到任何获取特定于二维码的详细信息的方法,只有成功扫描的结果...

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) 确实 具有我们正在寻找的值,但我不是确定如何获取要检查的实例。

呸!它就在我面前!

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")
    }
}