我正在尝试将Swift 3代码转换为Swift 4.但是这个错误显示:
“substring(from :)'已弃用:请使用字符串切片下标 使用'部分范围来自'运营商。“
我的代码是:
extension String {
func substring(_ from: Int) -> String {
return self.substring(from: self.characters.index(self.startIndex, offsetBy: from))
}
}
答案 0 :(得分:6)
你应该:
extension String {
func substring(_ from: Int) -> String {
let start = index(startIndex, offsetBy: from)
return String(self[start ..< endIndex])
}
}
在swift中你可以使用切片获得子串 - 这样的结构:string[startIndex ..< endIndex]
。字符串索引是swift中的一种特殊类型,因此您不能使用简单的整数 - 您必须获取适当的索引,例如调用index(_,offsetBy:)
或使用预定义的startIndex
和endIndex
。