Adding Multiple Key-Value Pairs to QR Codeを使用して生成したqrコードをスキャンしようとしています。 qrコードを生成できますが、スキャンしようとするとnullのmetadataObj.stringValueが生成されます。ここでSwift 4:辞書入力によるQRコードのスキャン
は、メタデータの出力を読むために私のコードです:
func metadataOutput(_ output: AVCaptureMetadataOutput, didOutput metadataObjects: [AVMetadataObject], from connection: AVCaptureConnection) {
// Check if the metadataObjects array is not nil and it contains at least one object.
if metadataObjects == [] || metadataObjects.count == 0 {
qrCodeFrameView?.frame = CGRect.zero
print("No QR code is detected")
return
}
// Get the metadata object.
let metadataObj = metadataObjects[0] as! AVMetadataMachineReadableCodeObject
if metadataObj.type == AVMetadataObject.ObjectType.qr {
// If the found metadata is equal to the QR code metadata then update the status label's text and set the bounds
if let layer = previewLayer{
let barCodeObject = layer.transformedMetadataObject(for: metadataObj)
qrCodeFrameView?.frame = barCodeObject!.bounds
}
guard let inputData = metadataObj.stringValue?.data(using: String.Encoding.isoLatin1, allowLossyConversion: false),
let dictionary = NSKeyedUnarchiver.unarchiveObject(with: inputData) as? [String: NSData] else { return }
print(dictionary["firstName"] ?? "None")
}
}
メタデータオブジェクトがnullの文字列値を出力している場合、私は、データをアーカイブ解凍方法は?
あなたの 'metadataObj.stringValue'はデコードする前に値を持っていますか? – Bluewings
デコードする前にnilの値を出力します。それは私が持っている問題です。 – Ali
生成したqrコードを転記することはできますか? – Bluewings