无法使用类型为((Range <string.index>)'的参数列表来调用类型'Range <_>'的初始化程序

时间:2018-09-25 03:19:08

标签: range swift4 xcode10

  

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

我在Cannot invoke initializer for type 'Range<String.Index>' with an argument list of type '(Range<String.Index>)'找到了Martin R给出的另一个很好的答案,但是还没有找到解决我的问题的方法。

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)])
    }
}

0 个答案:

没有答案