无法使用类型为"(Range <String.Index>)"的参数列表调用类型"Range <_>"的初始值设定项

Bas*_*ien 5 range swift4 xcode10

从Xcode 10开始,我Cannot invoke initializer for type 'Range<_>' with an argument list of type '(Range<String.Index>)'在下面的代码中的返回行收到一条错误消息,这是一个用于在需要时获取子字符串的扩展.

我找到了另一个很好的答案Martin R在[ 无法使用类型'(Range <String.Index>)'的参数列表调用类型'Range <String.Index>'的初始值设定项,但是还没有找到方法解决我的问题.

谢谢你的帮助.

extension String {
    subscript (i: Int) -> Character { return self[index(startIndex, offsetBy: i)] }
    subscript (i: Int) -> String { return String(self[i] as Character) }
        subscript (r: Range<Int>) -> String {
        let start = index(startIndex, offsetBy: r.lowerBound)
        let end = index(startIndex, offsetBy: r.upperBound)

        return String(self[Range(start ..< end)])
    }
}
Run Code Online (Sandbox Code Playgroud)

}