web-dev-qa-db-ja.com

'substring(to :)'は非推奨です: 'partial rangeupto'演算子を使用して文字列スライス添え字を使用してください

次のコードを新しいバージョンのSwiftに更新するにはどうすればよいですか?

self.areaCodeLael.text! = localNumber.substring(to: localNumber.index(localNumber.startIndex, offsetBy: 3))

この投稿をフォローしようとしましたが、正しく理解できません Swift 4? で文字列スライスの添え字を使用するにはどうすればよいですか?)

元のコードをlocalNumber[..<3]に調整しましたが、次のようになります。

タイプ「String」の値をタイプ「PartialRangeUpTo」のインデックスで下付き文字にすることはできません

10
user1079052

この状況ではlocalNumber.prefix(3)と言います。短くて甘い。

18
matt

localNumber[..<3]を使用しようとする際の問題は、範囲としてIntを渡すことができないことです。 String.Indexを渡す必要があります。

コードは次のようにする必要があります。

let index = localNumber.index(localNumber.startIndex, offsetBy: 3)
self.areaCodeLael.text = localNumber[..<index]

また、textの後に!演算子は必要ないことに注意してください。

8
rmaddy