TL;DR
popViewController(animated:)
retours UIViewController?
, et le compilateur est en donnant cet avertissement, car vous n'êtes pas la capture de la valeur. La solution consiste à attribuer à un trait de soulignement:
_ = navigationController?.popViewController(animated: true)
Swift 3 Changement
Avant de Swift 3, toutes les méthodes ont eu un "jetables" résultat par défaut. Pas d'avertissement se produit lorsque vous n'avez pas à saisir ce que le renvoi de la méthode.
Afin de dire au compilateur que le résultat doit être capturé, vous avez dû ajouter @warn_unused_result
avant la déclaration de la méthode. Il serait utilisé pour les méthodes qui ont une mutable forme (ex. sort
et sortInPlace
). Souhaitez-vous ajouter d' @warn_unused_result(mutable_variant="mutableMethodHere")
pour indiquer au compilateur.
Cependant, avec la Swift 3, le comportement est inversé. Toutes les méthodes maintenant avertir que la valeur de retour n'est pas capturé. Si vous voulez dire au compilateur que l'avertissement n'est pas nécessaire, vous ajoutez @discardableResult
avant la déclaration de la méthode.
Si vous ne souhaitez pas utiliser la valeur de retour, vous devez explicitement indiquer au compilateur en l'affectant à un trait de soulignement:
_ = someMethodThatReturnsSomething()
La Motivation pour l'ajout de cette Swift 3:
- La prévention d'éventuels bugs (ex. à l'aide de
sort
pensant qu'il modifie la collection)
- Intention explicite de ne pas capturer ou qui ont besoin d'enregistrer le résultat pour les autres collaborateurs
Le UIKit API semble être en retard sur ce, ne pas ajouter @discardableResult
pour les tout à fait normal, si pas le plus fréquent) l'utilisation d' popViewController(animated:)
sans capture de la valeur de retour.
Lire Plus