Selectors en Swift 3
Joanna Carter
Membre, Modérateur
Je viens de commencer à jouer avec Xcode 8 beta 3 en convertissant une copie de mon appli Fest Jazz, juste pour voir quelles sont les différences entre Swift 2 et Swift 3.
// Xcode 7.3 Swift 2.2
if let action = self.splitViewController?.displayModeButtonItem().action
{
self.splitViewController?.performSelector(action)
}
Xcode 8b3 Swift 3.0
if let action = self.splitViewController?.displayModeButtonItem().action
{
let _ = self.splitViewController?.perform(action)
}
Apparemment, il faut assigner le résultat de perform(...) à quelque chose. Sinon, on reçoit l'avertissement "Expression of type 'Unmanaged<AnyObject>?' is unused".
C'est seulement moi qui le trouve un peu bizarre ?
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Ah, c'est parce que Swift 3 exige que tous les résultats des fonctions soient assignés et, dans ce cas là , perform(...) renvoie le résultat de la function qui est la cible du selector ::)