'substring(to:)' is deprecated: Please use

2019-02-21 16:49发布

问题:

How can I update the following code to the new version of swift:

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

I have tried following this post but I can't get it right How can I use String slicing subscripts in Swift 4?

I adjusted my original code to localNumber[..<3] but I get:

Cannot subscript a value of type 'String' with an index of type 'PartialRangeUpTo'

回答1:

I would say localNumber.prefix(3) in this situation. Short and sweet.



回答2:

The problem with your attempt to use localNumber[..<3] is that you can't pass an Int as the range. You need to pass a String.Index.

Your code needs to be:

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

Also note that you do not want the ! operator after text.