Я пытаюсь преобразовать ниже Swift 2 метода расширения для Swift 3.«Генератор» не является типом членом «Self.SubSequence»
extension CollectionType {
func chunk(withDistance distance: Index.Distance) -> [[SubSequence.Generator.Element]] {
var index = startIndex
let generator: AnyGenerator<Array<SubSequence.Generator.Element>> = anyGenerator {
defer { index = index.advancedBy(distance, limit: self.endIndex) }
return index != self.endIndex ? Array(self[index ..< index.advancedBy(distance, limit: self.endIndex)]) : nil
}
return Array(generator)
}
}
инструмент преобразования Xcode оставил меня с этим.
extension Collection {
func chunk(withDistance distance: Int) -> [[SubSequence.Iterator.Element]] {
var index = startIndex
let generator: AnyGenerator<Array<SubSequence.Generator.Element>> = anyGenerator {
defer { index = index.advancedBy(distance, limit: self.endIndex) }
return index != self.endIndex ? Array(self[index ..< index.advancedBy(distance, limit: self.endIndex)]) : nil
}
return Array(generator)
}
}
Теперь я получаю вышеуказанную ошибку в строке, let generator: AnyGenerator<Array<SubSequence.Generator.Element>> = anyGenerator {
. Я не могу понять, как это исправить.
Спасибо. Ваш второй подход намного чище и понятнее. – Isuru