【问题标题】:swift 3 equivalent for indexAtPosition, urlRequest.url!.isEqualindexAtPosition、urlRequest.url!.isEqual 的 swift 3 等效项
【发布时间】:2016-10-06 11:17:08
【问题描述】:

您好,从 swift 2.2 升级到 swift 3 时出现以下错误

参数标签 '(atPosition:)' 不匹配任何可用的重载"

下面是swift 2.2中的以下代码,你们能帮帮我吗?

private func getIndexInTheLastSection(indexPath: NSIndexPath) -> Int? {
        let index = indexPath.indexAtPosition(indexPath.length - 1)
        if index == NSNotFound {
            return nil
        }
        return index
    }

///////////////

【问题讨论】:

  • 编译器不给出建议吗?或者将代码粘贴到 Playground 中,然后您将获得详细信息。替代方法是重新键入函数并使用代码完成或阅读文档。
  • 在 Swift 3 中你应该使用IndexPath,然后它就是if let index = indexPath.last { ... }。 – 请注意,在一个问题中混合两个不同的问题是有问题的。如果每个问题都有不同的人给出答案,你会接受哪个答案?
  • Martin R : 为一个答案编辑了上述问题

标签: swift xcode swift3 nsindexpath


【解决方案1】:

对于带有URLisEqual 错误,请使用== 而不是isEqual 进行比较。

if urlRequest.URL! == strongSelf.request?.urlRequest?.URL {

对于错误Argument labels '(atPosition:)'

indexPath.index(atPosition: (indexPath as NSIndexPath).length - 1)

【讨论】:

  • 在 Swift 3 中,他们使用 URL 而不是 NSURLURL 没有 isEqual 所以连击使用 ==
  • 尝试使用上面的第一个为 urlRequest 工作得很好。第二个我遇到了一个问题'indexPAth 类型的值没有成员'
  • 我得到同样的错误'indexPAth 类型的值没有成员长度'
  • 我现在收到第一个错误“参数标签(atPostion)”不匹配任何可用的重载
  • 仍然收到相同的错误“参数标签(atPostion)”不匹配任何可用的重载–
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-11
  • 2012-04-22
  • 2015-10-08
相关资源
最近更新 更多