ios – Swift中的NSFastEnumeration

前端之家收集整理的这篇文章主要介绍了ios – Swift中的NSFastEnumeration前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试将Objective-C项目转换为 swift,但是我无法找到如何对符合NSFastEnumeration的类的对象使用NSFastEnumeration.

以下是ObjC中的代码

//  get the decode results
id<NSFastEnumeration> results = [info objectForKey: ZBarReaderControllerResults];

ZBarSymbol *symbol = nil;
for(symbol in results)
    // just grab the first barcode
    break;

到目前为止,我试图找到如何做到这一点,但是这不行,这里是swift代码

var results: ZBarSymbolSet = infoDictionary?.objectForKey(ZBarReaderControllerResults) as ZBarSymbolSet

    var symbol : ZBarSymbol? = nil;

    for symbol in results
    {    //just grab first barcode
        break;
    }

错误进入条件 – “ZBarSymbolSet”没有名为“Generator”的成员

我究竟做错了什么?

这是屏幕截图

解决方法

在一段时间之后,swift框架文件,我终于找到这个漂亮的类叫NSFastGenerator. NSSet和朋友似乎使用相同的Generator.

对于ZBarSymbolSet,以下是如何将其扩展为支持for-in循环:

extension ZBarSymbolSet: SequenceType {
    public func generate() -> NSFastGenerator {
        return NSFastGenerator(self)
    }
}

更新:看起来像Swift 2.0的协议扩展修复了我们!

猜你在找的iOS相关文章