Selectors en Swift 3

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 ?


Réponses

  • Joanna CarterJoanna Carter Membre, Modérateur

    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  ::)


Connectez-vous ou Inscrivez-vous pour répondre.