IOS无法在iphone5或4s上读取QR码,但6,6s都可以

时间:2016-10-07 01:53:31

标签: ios objective-c iphone swift qr-code

我将二维码放在UIImageView中并使用系统方法读取它。
它可以在iPhone6或6s上运行但在iPhone5上无法读取任何内容。

有没有人知道如何解决?

CIDetector* detector = [CIDetector detectorOfType:CIDetectorTypeQRCode context:nil options:@{ CIDetectorAccuracy : CIDetectorAccuracyHigh }];
NSArray *features = [detector featuresInImage:[CIImage imageWithCGImage:self.QRImageView.image.CGImage]];

1 个答案:

答案 0 :(得分:0)

看起来您需要使用AVCaptureMetadataOutput

// Device
self.device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];

// Input
self.input = [AVCaptureDeviceInput deviceInputWithDevice:self.device error:nil]

// Output
self.output = [[AVCaptureMetadataOutput alloc] init];
[self.output setMetadataObjectsDelegate:self queue:dispatch_get_main_queue()];
self.output.metadataObjectTypes = @[AVMetadataObjectTypeQRCode];

// Session
self.session = [[AVCaptureSession alloc] init];
[self.session addInput:self.input];
[self.session addOutput:self.output];  

其他人已经注意到CIDetector仅适用于iPhone 5s及以上,iPad Air及以上版本。

(设备参考:https://forums.developer.apple.com/thread/20887