Mit der Veröffentlichung Swift 3.0 wurden die Signaturen vieler Methoden in der Bibliothek aus Gründen der Lesbarkeit geändert (siehe API Design Guidelines).
Vergleichen Sie zum Beispiel die aktuelle Signatur der Methode Sie zu seiner Darstellung in der Code-Vervollständigung Vorschlagsliste von Xcode zitiert:
// implementation:
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {...}
// code completion:
tableView(tableView: UITableView, heightForRowAt: IndexPath)
Im Gegensatz verwendet die vorherige Implementierung redundanter Informationen anzuzeigen:
// implementation:
func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {...}
// code completion:
tableView(tableView: UITableView, heightForRowAtIndexPath: NSIndexPath)
--------- -----------
Weiteren die Durchführung einer Funktion oder Methode erfordert nun ein Unterstrich (_
) auch für das erste Argument, um zu ermöglichen, auslassen eingestellt wird Argumente beim Aufruf der Funktion/Methode (siehe: https://stackoverflow.com/a/38192263/6793476).
Offensichtlich einige Wähler in der Bibliothek wurden noch nicht aktualisiert, so dass Sie die richtigen zur Verfügung stellen müssen (die „alte“) Selektornamen (siehe: https://stackoverflow.com/a/39416386/6793476 und für weitere Informationen über Selektoren: https://stackoverflow.com/a/24007718/6793476).
Ich hoffe, dass hilft.
dies sehen http://stackoverflow.com/questions/39416385/swift-3-objc-optional-protocol-method-not-called-in-subclass –