NSFastEnumeration in Swift

2019-10-09  本文已影响0人  fishycx

项目中使用了ZBar , 因为使用的swift,遇到如下问题:

在识别二维码内容时调用了如下方法:

guard let results = reader.scanImage(image) else {

    return  ""

}

在 OC中可以使用如下方法获取内容值

/  get the decode results

id<NSFastEnumeration> results = [info objectForKey: ZBarReaderControllerResults];

ZBarSymbol *symbol = nil;

for(symbol in results)

    // just grab the first barcode

    break;

swift 怎么获取呢。

stackoverflow  上给了相关答案,但好像不好使。亲测会crash的。

其实可以换中遍历方式:

guard let results = reader.scanImage(image) else {

    return ""

}

var symbolFound : ZBarSymbol?

var iterator = NSFastEnumerationIterator(results)

while let symbol = iterator.next() {

    symbolFound = symbol as? ZBarSymbol

    BBLog(message: symbolFound)

}

解决

上一篇下一篇

猜你喜欢

热点阅读