从常量Ints创建Range <string.index>

时间:2015-11-19 22:24:22

标签: string swift range swift2

这段用于构建范围的代码有什么问题,该范围随后应调用substringWithRange

let range = Range<String.Index>(start: 0, end: 3)

Swift编译器(在Xcode 7.1.1中)用以下错误消息标记它:

  

无法为类型'Range&lt; Index&gt;'调用初始值设定项使用类型'(start:Int,end:Int)'

的参数列表

2 个答案:

答案 0 :(得分:7)

您需要引用特定字符串的startIndex,然后前进:

let longString = "Supercalifragilistic"
let startIndex = longString.startIndex
let range = Range(start: startIndex, end: startIndex.advancedBy(3))

答案 1 :(得分:0)

您可以使用各种方式

let startIndex = text.startIndex
let endIndex = text.endIndex

var range1 = startIndex.advancedBy(1) ..< text.endIndex.advancedBy(-4)
var range2 = startIndex.advancedBy(0) ..< startIndex.advancedBy(5)
var range3 = startIndex ..< endIndex

let substring = text.substringWithRange(range)