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) } }