我正在尝试迭代CMSensorDataList
返回的CMSensorRecorder.accelerometerData(from:to:)
类的对象。该类确认NSFastEnumeration
协议。所以我尝试了https://stackoverflow.com/a/25872991/5603109中提到的技巧。但是,由于我使用的是Xcode版本8.0 beta(8S128d),它不再有效。
如何才能支持for-in
循环?
答案 0 :(得分:9)
在Swift 3中,SequenceType
已重命名为Sequence
(“类型”后缀已从协议中删除),generate()
已重命名为makeIterator()
( “生成器”的概念已被“迭代器”替换,因此NSFastGenerator
也已重命名为NSFastEnumerationIterator
。
因此,您希望您的扩展程序如下所示:
extension CMSensorDataList : Sequence {
public func makeIterator() -> NSFastEnumerationIterator {
return NSFastEnumerationIterator(self)
}
}