11
votes

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'

2
Update your question showing how you attempted to make use of the information in the linked question.rmaddy
Unrelated but why are you putting the ! operator just before the =? Get rid of that.rmaddy

2 Answers

19
votes

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

8
votes

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.