【问题标题】:Swift migration: Argument labels '(_:)' do not match any available overloadsSwift 迁移:参数标签 '(_:)' 不匹配任何可用的重载
【发布时间】:2017-02-07 22:32:55
【问题描述】:

我是一名 Swift 初学者,我正在尝试将我的应用迁移到 Swift 3。

我一直有这个错误,不知道如何解决它。 “参数标签 '(_:)' 不匹配任何可用的重载”

我正在使用 Swift Validator,我的代码似乎与提议的代码相同。 https://github.com/jpotts18/SwiftValidator

我的问题可能和那些类似:

similar issue 1

similar issue 2

你有什么想法吗? 非常感谢

class UpdateContactViewController: UIViewController, UITableViewDelegate, UITableViewDataSource,ValidationDelegate, UITextFieldDelegate {
@available(iOS 2.0, *)
public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

}


let validator = Validator()
let realm = try! Realm()
var contact_identifier = "1"
var lastSelectedIndexPath: NSIndexPath?
@IBAction func save_button_hit(sender: AnyObject) {
    // text field validator
    validator.validate(self)
}

错误突出显示“validator.validate(self)”

感谢您的帮助

【问题讨论】:

标签: swift xcode swift3 migration xcode8


【解决方案1】:

请记住,Swift 3 为方法调用中的参数引入了强制性标签。所以之前的调用是:

elem.perform(a)

现在完成了:

elem.perform(parameterName: a)

所以正确的是:

validator.validate(delegate: self)

【讨论】:

  • 如果在定义中以 _ 开头,则可以在调用站点将参数名称设为可选。
【解决方案2】:

这是解决问题的方法:validator.validate(delegate: self)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-19
    • 2020-01-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多