不能在斯威夫特创造了一系列3

问题描述:

我试图在斯威夫特3的范围内,我已经有了斯威夫特2,但它不断给我这个错误: String may not be indexed with 'Int', it has variable size elements不能在斯威夫特创造了一系列3

这里是我的代码:

let range = expireRange!.startIndex.advancedBy(n: 7) ..< expireRange!.startIndex.advancedBy(n: 16) 

expiredRange是Range<Index>?

在夫特2,我有:

let range = expireRange!.startIndex.advancedBy(7)...expireRange!.startIndex.advancedBy(16) 

在Swift 3中,“Collections移动他们的索引”,见Swift演变中的 A New Model for Collections and Indices

这里是字符串范围和索引的示例:

let string = "ABCDEFG" 
if let range = string.range(of: "CDEF") { 
    let lo = string.index(range.lowerBound, offsetBy: 1) 
    let hi = string.index(range.lowerBound, offsetBy: 3) 
    let subRange = lo ..< hi 
    print(string[subRange]) // "DE" 
} 

public func index(_ i: Index, offsetBy n: IndexDistance) -> Index 

方法被调用的字符串从 范围(其具有现在属性lower/upperBound计算新的索引而不是 start/endIndex)。