Ответ 1
В Swift 3 "Коллекции перемещают свой индекс", см. Новая модель для коллекций и индексов по эволюции Быстро.
Вот пример диапазонов строк и индексов:
let string = "ABCDEFG"
if let range = string.range(of: "CDEF") {
let lo = string.index(range.lowerBound, offsetBy: 1)
let hi = string.index(range.lowerBound, offsetBy: 3)
let subRange = lo ..< hi
print(string[subRange]) // "DE"
}
public func index(_ i: Index, offsetBy n: IndexDistance) -> Index
Метод вызывается в строке для вычисления новых индексов из
диапазон (который теперь имеет свойства lower/upperBound
вместо
start/endIndex
).