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_result
prima della dichiarazione del metodo. Sarebbe usato per metodi che hanno una forma mutabile (es. sort
E 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 @discardableResult
prima 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
sort
pensiero 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 @discardableResult
per l'uso perfettamente normale (se non più comune) popViewController(animated:)
senza acquisire il valore di ritorno.
Leggi di più