Swift 3中的NSFastEnumeration

时间:2016-06-15 08:25:52

标签: ios swift nsfastenumeration

我正在尝试迭代CMSensorDataList返回的CMSensorRecorder.accelerometerData(from:to:)类的对象。该类确认NSFastEnumeration协议。所以我尝试了https://stackoverflow.com/a/25872991/5603109中提到的技巧。但是,由于我使用的是Xcode版本8.0 beta(8S128d),它不再有效。

如何才能支持for-in循环?

1 个答案:

答案 0 :(得分:9)

在Swift 3中,SequenceType已重命名为Sequence(“类型”后缀已从协议中删除),generate()已重命名为makeIterator()( “生成器”的概念已被“迭代器”替换,因此NSFastGenerator也已重命名为NSFastEnumerationIterator

因此,您希望您的扩展程序如下所示:

extension CMSensorDataList : Sequence {
    public func makeIterator() -> NSFastEnumerationIterator {
        return NSFastEnumerationIterator(self)
    }
}