我有String
这个类别:
extension String {
subscript (i: Int) -> String {
return self[Range(i ..< i + 1)]
}
subscript (r: Range<Int>) -> String {
let range = Range(uncheckedBounds: (lower: max(0, min(count, r.lowerBound)),
upper: min(count, max(0, r.upperBound))))
let start = index(startIndex, offsetBy: range.lowerBound)
let end = index(start, offsetBy: range.upperBound - range.lowerBound)
return String(self[start ..< end])
}
}
,Xcode在此行给我警告:
return self[Range(i ..< i + 1)]
'init'已过时:CountableRange现在为Range。无需进行任何转换。
可惜的是,即使我对Swift很有经验,但我也不知道该如何解决。问题是:如何摆脱这种警告。
谢谢!
答案 0 :(得分:10)
您不需要Range.init
。换句话说,更改:
return self[Range(i ..< i + 1)]
收件人:
return self[i ..< i + 1]