为什么这个api(featuresInImage)在iOS10中无法工作: - (NSArray <cifeature * =“”> *)featuresInImage:(CIImage *)image

时间:2016-10-13 07:15:49

标签: ios objective-c ios10 cidetector

+ (NSString *)readQRCodeImage:(UIImage *)imagePicked {
CIImage *qrcodeImage = [CIImage imageWithCGImage:imagePicked.CGImage];
CIContext *qrcodeContext = [CIContext contextWithOptions:nil];

// detector
CIDetector *qrcodeDetector = [CIDetector detectorOfType:CIDetectorTypeQRCode context:qrcodeContext options:@{CIDetectorAccuracy:CIDetectorAccuracyHigh}];

// read features
NSArray *qrcodeFeatures = [qrcodeDetector featuresInImage:qrcodeImage];

//
NSString *qrcodeResultString = nil;
if (qrcodeFeatures && qrcodeFeatures.count > 0) {
    for (CIQRCodeFeature *qrcodeFeature in qrcodeFeatures) {
        if (qrcodeResultString && qrcodeResultString.length > 0) {
            break;
        }
        qrcodeResultString = qrcodeFeature.messageString;
    }
}
NSLog(@"%@",qrcodeResultString);

return qrcodeResultString;

}

我想阅读图像功能,例如iOS10中的图片 代码在iOS8和iOS9中正常工作。

我会非常感激任何帮助。 enter image description here

1 个答案:

答案 0 :(得分:0)

我认为他们对 CIFeautre 类进行了修改。现在您需要将其转换为子类 CIQRCodeFeature

我是如何在Swift中做到的:

let userFeatures = userDetector?.features(in: userImage!) as? [CIQRCodeFeature]
userDecode = (userFeatures?[0].messageString)!