如何检查扫描的QRCode是否包含除数字之外的任何内容

时间:2018-02-20 18:09:16

标签: ios swift metadata qr-code barcode-scanner

对于我的项目,我正在使用QRCodescanner,如果代码只包含数字,它应该只响应qrcode。因此,只要代码包含除数字之外的任何内容,它应该提供错误警报。 现在,每当我扫描一个代码时,只有一个整数,应用程序崩溃。

以下是我到目前为止处理输出的方法:

 func metadataOutput(_ output: AVCaptureMetadataOutput, didOutput metadataObjects: [AVMetadataObject], from connection: AVCaptureConnection){


    if metadataObjects.count != 0 {

        if let object = metadataObjects[0] as? AVMetadataMachineReadableCodeObject{

            if object.type == AVMetadataObject.ObjectType.qr{
                self.session.stopRunning()

                ergebnis = Int(object.stringValue!)!

                barnummer = ergebnis/1000*1000

                qrbar = [QRBereich]()
                qrbarname = ""

                fetchData()
                }
            }
        }
    }

在将对象Value转换为Int变量之前,我想检查它是否真的只包含数字,但我不知道如何检查它。 谢谢你的帮助 !

1 个答案:

答案 0 :(得分:0)

您需要安全地打开选项。您的应用崩溃是因为您误用了!运营商。

if object.type == AVMetadataObject.ObjectType.qr{
    self.session.stopRunning()

    if let string = object.stringValue {
        if let ergebnis = Int(string) {
            barnummer = ergebnis/1000*1000

            qrbar = [QRBereich]()
            qrbarname = ""

            fetchData()
        } else {
            // Not an integer, show error
        }
    }
}