indexAtPosition、urlRequest.url!.isEqual 的 swift 3 等效项
Posted
技术标签:
【中文标题】indexAtPosition、urlRequest.url!.isEqual 的 swift 3 等效项【英文标题】:swift 3 equivalent for indexAtPosition, urlRequest.url!.isEqual 【发布时间】: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 : 为一个答案编辑了上述问题
【参考方案1】:
对于带有URL
的isEqual
错误,请使用==
而不是isEqual
进行比较。
if urlRequest.URL! == strongSelf.request?.urlRequest?.URL
对于错误Argument labels '(atPosition:)'
indexPath.index(atPosition: (indexPath as NSIndexPath).length - 1)
【讨论】:
在 Swift 3 中,他们使用URL
而不是 NSURL
和 URL
没有 isEqual
所以连击使用 ==
。
尝试使用上面的第一个为 urlRequest 工作得很好。第二个我遇到了一个问题'indexPAth 类型的值没有成员'
我得到同样的错误'indexPAth 类型的值没有成员长度'
我现在收到第一个错误“参数标签(atPostion)”不匹配任何可用的重载
仍然收到相同的错误“参数标签(atPostion)”不匹配任何可用的重载–以上是关于indexAtPosition、urlRequest.url!.isEqual 的 swift 3 等效项的主要内容,如果未能解决你的问题,请参考以下文章
移动到 cocoapod 时,Swift Routing 枚举崩溃