Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/99.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Swift3:我想功能读取和计算二维码_Ios_Swift3_Count_Xcode8_Qr Code - Fatal编程技术网

Ios Swift3:我想功能读取和计算二维码

Ios Swift3:我想功能读取和计算二维码,ios,swift3,count,xcode8,qr-code,Ios,Swift3,Count,Xcode8,Qr Code,我正在构建一个二维码阅读器应用程序。我写了一个函数来读取和计算二维码。我可以显示动态按钮标题的计数;但是,QR码值并不像1、2、3那样计算。显示自然QR值 我的ViewController: class LentScanViewController: QRScannerViewController { var device_name = "" var countNum = 0 @IBOutlet weak var LentButton: UIButton! @IBAction func le

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

我的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"
}
请尝试:

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

非常感谢。但此代码是显示metadataObj值。我想如果扫描一个二维码显示1。另一个扫描显示2。就像这个视频编辑了答案。请查收,谢谢。但此代码是显示metadataObj值。我想如果扫描一个二维码显示1。另一个扫描显示2。就像这个视频编辑了答案。请查收。