我不明白为什么这段代码不起作用,检测器总是带有CIDetectorTypeQRCode常量为零,所有内容都适用于CIDetectorTypeFace。 我想到了Apple的API的一个错误。这是官方文件:Apple documentation
@IBAction func analyseTag(sender: AnyObject) {
var detector:CIDetector = CIDetector(ofType: CIDetectorTypeQRCode, context:nil, options:[CIDetectorAccuracy: CIDetectorAccuracyHigh])
var decode = ""
var ciImage:CIImage = CIImage(image: ImgChoosed.image)
var message:String = "";
let features = detector.featuresInImage(ciImage)
for feature in features as [CIQRCodeFeature] {
message += feature.messageString
}
if(message == "") {
println("nothing")
} else {
println("\(message)")
}
}
你有解决方案吗? 提前感谢你的家伙
答案 0 :(得分:1)
这也发生在我们身上。 iPhone 4s不会返回QRCode类型的CIDetector。其他类型(矩形,面部)虽然工作...
相同的代码在iPhone 6上按预期工作。尚未在5或5s上进行过测试。
但两周前,我相信它还在4s上工作。当时它仍然在iOS 8上,我想。
答案 1 :(得分:0)
您提供的代码不能为detector
,因为它不是可选的,编译器会在代码中抱怨代码中的几个位置。
如果功能为空,则表示您没有在图像中找到QR码。尝试提供更好的图片或调低CIDetectorAccuracy
。
如果功能不为空,那么您的演员表会失败。
编辑:
您无法在构造函数中传递nil
上下文。
答案 2 :(得分:0)
@Component({
template: .....,
directives: [FORM_DIRECTIVES]
})
。答案 3 :(得分:-2)
我发现在设备上使用解决了这个问题。模拟器似乎总是为我返回零。