Wie kann ich in @ Swift 4 mit der @objc-Inferenzabwertung mit #selector () umgehen?

Ich versuche zu konvertieren, mein Projekt ist der source code von Swift 3 Swift 4. Eine Warnung, die Xcode ist was mich über meine Selektoren.

Habe ich zum Beispiel ein Ziel hinzuzufügen, um eine Schaltfläche mit einem normalen Selektor wie:

button.addTarget(self, action: #selector(self.myAction), for: .touchUpInside)

Dies ist die Warnung, es zeigt:

Argument '#selector' bezieht sich auf die Instanz-Methode " myAction()' in 'ViewController' hängt '@objc' Attribut Inferenz deprecated in Swift 4

Hinzufügen '@objc', um zu bewirken, dass diese Instanz-Methode in Objective-C

Nun, schlagen Fix auf die Fehlermeldung bedeutet das für meine Funktion:

//before
func myAction() { /* ... */ }

//after
@objc func myAction() { /* ... */ }

Ich nicht wirklich wollen alle umbenennen zu meinen Funktionen gehören die @objc mark und ich gehe davon aus, dass das nicht nötig ist.

Wie kann ich schreiben die Wähler befassen sich mit der Missbilligung?


Verwandte Frage:

InformationsquelleAutor der Frage LinusGeffarth | 2017-06-06

Schreibe einen Kommentar