Swift3:我想函数读取和计数二维码

Swift3: I would like to function read and count QR code

我正在构建一个 QR 码 reader 应用程序。我写了一个函数来读取和计数二维码。我可以显示动态按钮标题的计数;但是二维码的值不是1,2,3那样统计的。显示自然的二维码值。

我的ViewController:

class LentScanViewController: QRScannerViewController {

var device_name = ""
var countNum = 0

@IBOutlet weak var LentButton: UIButton!
@IBAction func lentButton(_ sender: Any) {
    performSegue(withIdentifier: "toLentTable",sender: device_name)
}
override func viewDidLoad() {
    super.viewDidLoad()
}

func captureOutput(_ captureOutput: AVCaptureOutput!, didOutputMetadataObjects metadataObjects: [Any]!, from connection: AVCaptureConnection!) {


    if metadataObjects == nil || metadataObjects.count == 0 {
        qrCodeFrameView?.frame = CGRect.zero
        return
    }

    let metadataObj = metadataObjects[0] as! AVMetadataMachineReadableCodeObject

    if metadataObj.type == AVMetadataObjectTypeQRCode {

        let barCodeObject = videoPreviewLayer?.transformedMetadataObject(for: metadataObj)
        qrCodeFrameView?.frame = barCodeObject!.bounds

        if metadataObj.stringValue != nil {
            device_name = metadataObj.stringValue

            countNum = countNum + 1
            LentButton.setTitle(String(countNum) + "Lent", for:[])
        }
    }
}

请尝试:

var qrCodes:[String] = [] // declare it as member variable in the class

然后调用

if metadataObj.stringValue != nil {
    let device_name = metadataObj.stringValue
    if !qrCodes.contains(device_name!) {
        qrCodes.append(device_name!)
    }
    countNum = countNum + 1
    messageLabel.text = String(countNum) + "Lent"
}