我正在构建一个二维码阅读器应用程序。我写了一个读取和计数二维码的函数。我可以显示动态按钮标题的计数;但是,二维码的值不像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:[])
}
}
}发布于 2017-08-28 11:35:13
请尝试:
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"
}https://stackoverflow.com/questions/45911182
复制相似问题