I am trying to make a range in Swift 3 that I already had in Swift 2 but it keeps giving me this error:
String may not be indexed with 'Int', it has variable size elements
Here is my code:
let range = expireRange!.startIndex.advancedBy(n: 7) ..< expireRange!.startIndex.advancedBy(n: 16)
expiredRange is a Range<Index>?
In Swift 2, I had:
let range = expireRange!.startIndex.advancedBy(7)...expireRange!.startIndex.advancedBy(16)
In Swift 3, "Collections move their index", see A New Model for Collections and Indices on Swift evolution.
Here is an example for String ranges and indices:
The
method is called on the string to calculate the new indices from the range (which has properties
lower/upperBound
now instead ofstart/endIndex
).