2016-07-19 7 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をご覧ください。 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)