"advancedBy" недоступен в Xcode 8

В настоящее время я использую XCode 8 и в строке

let range = key.startIndex...key.startIndex.advancedBy(0)

Я получаю сообщение об ошибке:

Ошибка: "advancedBy" недоступен: для продвижения индекса на n шагов вызовите "index (_: offsetBy:)" в экземпляре CharacterView, который создал индекс.

Как я могу это исправить?

Снимок экрана с ошибкой ниже:

advancedBy недоступен

Ответ 1

advancedBy(_:) устарел в Swift v3 и заменен на index(_:offsetBy:). Подробнее см. В руководстве Apple .

Решение вашей ошибки:

let range = key.startIndex...key.index(key.startIndex, offsetBy: 0)

Ответ 2

Вы можете добиться того, что вам нужно, просто построив новую строку, а не управляя старой:

let upperCasedFirstCharacter = String(key.characters.first!).uppercased()

let remainder = key.substring(from: key.characters.index(after: key.characters.startIndex))

let selector = "set\(upperCasedFirstCharacter)\(remainder)"