【问题标题】:Unable to invoke initializer for type 'Range<_>' with an argument list of type '(Range<String.Index>)'无法使用类型为“(Range<String.Index>)”的参数列表调用类型“Range<_>”的初始化程序
【发布时间】:2019-02-27 06:35:29
【问题描述】:

我已经参考了通过以下链接提供的许多解决方案,但没有得到这个想法。仍然面临这个问题。请参考图片并帮助我。谢谢!

   subscript (r: Range<Int>) -> String {
        let start = index(startIndex, offsetBy: r.lowerBound)
//        let end = <#T##String.CharacterView corresponding to `start`##String.CharacterView#>.index(start, offsetBy: r.upperBound - r.lowerBound)
        let end = index(start, offsetBy: r.upperBound - r.lowerBound)

        let range: Range<Index> = start..<end

        return String(self[range])
    }

Cannot invoke initializer for type 'Range<String.Index>' with an argument list of type '(Range<String.Index>)'

【问题讨论】:

  • 请发布代码,而不是截图。
  • 贴出代码,请查收
  • 上一个代码:subscript (r: Range) -> String { let start = index(startIndex, offsetBy: r.lowerBound) // let end = start##String.CharacterView#>.index(start, offsetBy: r.upperBound - r.lowerBound) let end = index(start, offsetBy: r.upperBound - r.lowerBound) return String(self[(开始..
  • 您的代码在 Xcode 10.1 (Swift 4) 中编译没有问题。
  • 这在 XCode 版本 10.0 中失败,我需要更新 XCode 吗?那里不应该也支持吗?

标签: ios swift


【解决方案1】:

这是如何解决的:

String.swift 是一个带有上述代码补丁的 pod 库。所以这就是我所做的。

Xcode -> 文件 -> WorkSpace -> 构建系统 -> 选择旧版构建系统

并且编译成功了。

谢谢!

【讨论】:

    猜你喜欢
    • 2018-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多