NSFastEnumeration在Swift 3中

我试图迭代CMSensorRecorder.accelerometerData(from:to:)返回的CMSensorDataList类的对象。 这个类确认NSFastEnumeration协议。 所以我尝试了在https://stackoverflow.com/a/25872991/5603109中提到的技巧。 但是,因为我使用Xcode版本8.0testing版(8S128d),它不再起作用。

我能做些什么来支持for-in循环?

在Swift 3中, SequenceType已被重命名为Sequence (“Type”后缀已从协议中删除), generate()已被重命名为makeIterator() (“Generator”的概念已被replace为“Iterator”)因此NSFastGenerator也被重命名为NSFastEnumerationIterator

因此,你会希望你的扩展看起来像这样:

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