2017-02-07 4 views
0

ich ein Anfänger swift Entwickler bin und ich versuche, meine App Swift 3.Swift Migration: Argument Labels ‚(_ :)‘ passen nicht alle verfügbaren Überlastungen

Ich muss immer wieder diesen Fehler und don‘zu migrieren Ich weiß, wie ich es lösen kann. "Argument Labels '(_ :)' stimmen nicht mit verfügbaren Überladungen überein"

Ich verwende Swift Validator und mein Code scheint derselbe wie der vorgeschlagene zu sein. https://github.com/jpotts18/SwiftValidator

Mein Problem ist, möglicherweise ähnlich denen diejenigen:

similar issue 1

similar issue 2

Haben Sie eine Idee? Vielen Dank

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

Der Fehler wird hervorheben "validator.validate (Selbst-)"

Danke für Ihre Hilfe

+0

Mögliche Duplikat [Argumentlabels (\ _ :) 'stimmen mit keinen verfügbaren Überladungen überein] (http://stackoverflow.com/questions/41 091776/argument-labels-do-not-match-any-available-overloads) – swillsea

+1

Der von Ihnen angegebene GitHub zeigt an, dass Sie alle Textfelder, an denen Sie interessiert sind, registrieren müssen, bevor Sie die 'validate (self)' Funktion aufrufen. Sie zeigen diesen Code nicht oben an ... – Russell

Antwort

2

Denken Sie daran, dass Swift 3 obligatorische Labels für die Parameter in einem Methodenaufruf eingeführt hat. So ein Anruf, der wurde zuvor getan, wie:

elem.perform(a)

jetzt getan wird:

elem.perform(parameterName: a)

so die richtige wäre folgendes:

validator.validate(delegate: self)

+1

Parameternamen können an der Aufrufstelle optional gemacht werden, wenn _ in der Definition vorangestellt ist. –

0

Hier ist, wie das Problem zu beheben: validator.validate (Delegierter: Selbst)

Verwandte Themen