如何在Swift 4中使用String下标

时间:2017-09-02 07:17:34

标签: ios swift

我正在尝试将Swift 3代码转换为Swift 4.但是这个错误显示:

  

“substring(from :)'已弃用:请使用字符串切片下标   使用'部分范围来自'运营商。“

我的代码是:

extension String {

    func substring(_ from: Int) -> String {
        return self.substring(from: self.characters.index(self.startIndex, offsetBy: from))
    }

}

1 个答案:

答案 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:)或使用预定义的startIndexendIndex