Ab Swift 2.2, gibt der folgende Code die Warnung:die Objective-C-Selektor eines Verfahrens Referenzierung
Keine Methode deklariert mit Objective-C selector'sync‘
if let tabBarController = segue.destinationViewController as? TabBarController {
tabBarController.navigationItem.rightBarButtonItem =
UIBarButtonItem(title: "Upload",
style: .Plain,
target: tabBarController,
action: "sync")
Was soll ich ersetzen action: "sync"
es mit der Warnung loswerden?
Ich habe versucht:
Selector("sync") // The Xcode provided fix which yields the same warning
#selector(tabBarController.sync()) // Error: Argument of '#selector' does not refer to initializer or method
Selector(tabBarController.sync()) // No error/warning but doesn't fire sync function
'#selektor (TabBarController.sync)' –
@AaronBrager Danke, es hat funktioniert. Also muss es der Klassenname sein? Es scheint '#selector (self.sync)' funktioniert wo 'target: self' – doovers
@doovers Ja, Sie geben die Methodensignatur (die" Aktion ") an, die für eine bestimmte Instanz ausgeführt werden soll (das" Ziel ") –