Comme Swift de 2,2, le code suivant donne l'avertissement:en référence du sélecteur Objective-C d'un procédé
Aucune méthode déclarée avec Objective-C selector'sync »
if let tabBarController = segue.destinationViewController as? TabBarController {
tabBarController.navigationItem.rightBarButtonItem =
UIBarButtonItem(title: "Upload",
style: .Plain,
target: tabBarController,
action: "sync")
Que dois-je remplacer action: "sync"
avec pour se débarrasser de l'avertissement?
J'ai essayé:
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
'#selector (TabBarController.sync)' –
@AaronBrager Merci cela a fonctionné. Donc, ça doit être le nom de la classe? Il semble que '#selector (self.sync)' fonctionne où 'target: self' – doovers
@doovers Oui, vous spécifiez la signature de la méthode (l '" action ") à exécuter sur une instance spécifique (la" cible ") –