【问题标题】:NSFastEnumeration in Swift 3Swift 3 中的 NSFastEnumeration
【发布时间】:2016-06-15 08:25:52
【问题描述】:

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

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

【问题讨论】:

    标签: ios swift nsfastenumeration


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2014-11-05
      • 1970-01-01
      • 2012-01-16
      • 1970-01-01
      • 1970-01-01
      • 2011-06-19
      • 2017-01-18
      • 2017-07-26
      相关资源
      最近更新 更多