TL; DR
popViewController(animated:)ritorna UIViewController?e il compilatore sta dando quell'avvertimento poiché non stai acquisendo il valore. La soluzione è assegnarlo a un carattere di sottolineatura:
_ = navigationController?.popViewController(animated: true)
Swift 3 Change
Prima di Swift 3, tutti i metodi avevano un "risultato scartabile" per impostazione predefinita. Non si verificherebbe alcun avviso se non è stato acquisito il metodo restituito.
Per dire al compilatore che il risultato deve essere acquisito, è necessario aggiungere @warn_unused_resultprima della dichiarazione del metodo. Sarebbe usato per metodi che hanno una forma mutabile (es. sortE sortInPlace). Aggiungeresti @warn_unused_result(mutable_variant="mutableMethodHere")per dirlo al compilatore.
Tuttavia, con Swift 3, il comportamento viene invertito. Tutti i metodi ora avvisano che il valore restituito non viene acquisito. Se vuoi dire al compilatore che l'avviso non è necessario, aggiungi @discardableResultprima della dichiarazione del metodo.
Se non si desidera utilizzare il valore restituito, è necessario indicare esplicitamente al compilatore assegnandolo a un carattere di sottolineatura:
_ = someMethodThatReturnsSomething()
Motivazione per l'aggiunta di questo a Swift 3:
- Prevenzione di possibili bug (es. Usando il
sortpensiero modifica la raccolta)
- Intenzione esplicita di non acquisire o necessità di acquisire il risultato per altri collaboratori
L'API UIKit sembra essere indietro su questo, non aggiungendo @discardableResultper l'uso perfettamente normale (se non più comune) popViewController(animated:)senza acquisire il valore di ritorno.
Leggi di più