Nach unserer Swift 3-Migration ist etwas wirklich Seltsames passiert. Wir haben zwei View-Controller, beide von ihnen implementieren UITableViewDelegate
und beide implementieren public func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)
Xcode 8/Swift 3: didSelectRowAt vs didSelectRowAtIndexPath
Allerdings nur in einem von ihnen wird die eigentliche Methode aufgerufen.
Wenn ich in der ändern, die nicht funktioniert public func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)
zu public func tableView(_ tableView: UITableView, didSelectRowAtIndexPath: IndexPath)
(beachten Sie die Swift 2.2 Signatur), dann funktionieren beide.
Beide View-Controller sind Swift-Klassen, also bin ich mir nicht sicher, was zum Teufel ist los. Ich bin mir ziemlich sicher, dass es ein Objective-C vs Swift Interoperabilitätsproblem sein könnte, aber unser gesamtes Projekt ist in Swift geschrieben, deshalb ist es schwer herauszufinden, was das verursacht.
Jede Hilfe wird geschätzt. Danke.
Wie haben Sie setzen '' 'didSelectRowAtIndexPath''' in Swift 3? Es wird in Swift 3 entfernt. Du kannst nur '' 'didSelectRowAt''' verwenden? –
Es ist wie in Swift 2.2 deklariert und es kompiliert einfach gut. – Cosmin
Ich hatte ein ähnliches Problem mit einigen CollectionView-Delegatfunktionen. Obwohl alles in Ordnung war, haben sie nicht funktioniert. Nach dem Auskommentieren der nicht funktionierenden Funktionen und dem Hinzufügen der Funktionen durch die automatische XCode-Vervollständigung funktionierte es nur gut - um nur zu erwähnen, dass es zwischen beiden Funktionen keinen Tippfehler gab ... Ich habe einfach meinen Code von der alten Funktion in kopiert und eingefügt der neue und voila ... vielleicht hilft es –