2016-07-19 2 views
11

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

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

Я получаю ошибку:

error: 'advancedBy' is unavailable: To advance an index by n steps call 'index(_:offsetBy:)' on the CharacterView instance that produced the index.

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

Скриншот ошибки ниже:

advancedBy is unavailable

+1

Пожалуйста, укажите свой код в вопросе, а также скриншот. – Paulw11

+1

Вам необходимо использовать индекс offsetBy http://stackoverflow.com/a/38215613/2303865 –

+0

См. Https://github.com/apple/swift-evolution/blob/master/proposals/0065-collections-move-indices. Мэриленд – HAS

ответ

0

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

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

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

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

advancedBy(_:) устарел в Swift v3 и заменен на index(_:offsetBy:). Для получения дополнительной информации см. Статью migration guide от Apple.

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

let range = key.startIndex...key.index(key.startIndex, offsetBy: 0) 
Смежные вопросы