2016-07-19 14 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

您需要使用index offsetBy http://stackoverflow.com/a/38215613/2303865 –

+0

請參閱https://github.com/apple/swift-evolution/blob/master/proposals/0065-collections-move-indices。 MD – 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:)取代。有關更多信息,請參閱Apple的migration guide

解決您的錯誤:

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