用AVFoundation读取二进制QR码

是否有可能读AVFoundation二进制编码QR码?

我可以得到.type AVMetadataObjectTypeQRCodeAVMetadataMachineReadableCodeObject对象,但是这只有一个stringValue属性,这将无法正常工作,因为QR码中包含的数据不能转换为string友好表示。

我应该用ZXING吗?

谢谢

原始数据确实存在于AVMetadataMachineReadableCodeObject ,但是它不能通过公共getter获得。

但是,您可以使用KVO将其解压缩,但Apple可能会拒绝您的应用程序。 此外,未来的iOS版本可能会更改其私有API,并且您的代码可能会失效(因为硬编码的私钥)。

迅速:

 readableCodeObject.valueForKeyPath("_internal.basicDescriptor")!["BarcodeRawData"] 

Objective-C的

 [readableCodeObject valueForKeyPath:@"_internal.basicDescriptor"][@"BarcodeRawData"]; 

我testing了这个iOS 8和9。