启动 GMVDetector 失败

Initiating GMVDetector fails

我在我的 Swift 3.1 项目中使用 GoogleMobileVision/Barcode 检测器,代码如下:

GMVDetector(ofType: GMVDetectorTypeBarcode, options: nil)

但在日志中显示:

iOS 中的 GoogleMobileVision 似乎是封闭源代码,因此我无法真正了解实施方面发生了什么

对这里可能发生的事情有什么想法吗?

我认为您需要输入一些条码类型的可选值,例如 EAN13 或 QRcode,而不是 nil。

var detector = GMVDetector()
let options:[AnyHashable: Any] = [GMVDetectorBarcodeFormats : GMVDetectorBarcodeFormat.EAN13.rawValue]
self.detector = GMVDetector.init(ofType: GMVDetectorTypeBarcode, options: options) 

已编辑 - 已解决

问题出在这段代码上(如@Developer所说)

let detectorOptions = [
        GMVDetectorBarcodeFormats : GMVDetectorBarcodeFormat.qrCode.rawValue
    ]

我也遇到了同样的问题,没有成功,不知道怎么回事

看起来它必须如此简单,但我想我尝试了各种方法来实例化它。我搜索了 swift 个示例,但没有找到任何有用的东西。

var barcodeDetector : GMVDetector?

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
    let detectorOptions = [
        GMVDetectorBarcodeFormats : [
            GMVDetectorBarcodeFormat.qrCode.rawValue
        ]
    ]
    self.barcodeDetector = GMVDetector(ofType: GMVDetectorTypeBarcode, options: detectorOptions)

}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)
}

override func viewDidAppear(_ animated: Bool) {
    if let image = UIImage(named: "QRTest.png") {
        if let barcodes = self.barcodeDetector!.features(in: image, options: nil) {
            for barcode in barcodes {
                print("\(barcode.description)")
            }
        }
    }
}