TL; DR
popViewController(animated:)
döndürür UIViewController?
ve derleyici değeri yakalamadığınız için bu uyarıyı verir. Çözüm, bunu bir alt çizgiye atamaktır:
_ = navigationController?.popViewController(animated: true)
Swift 3 Değişikliği
Swift 3'ten önce, tüm yöntemlerin varsayılan olarak "çıkarılabilir bir sonucu" vardı. Yöntemin döndürdüğünü yakalamadığınızda uyarı oluşmaz.
Derleyiciye sonucun yakalanması gerektiğini söylemek için @warn_unused_result
, yöntem bildiriminden önce eklemeniz gerekiyordu . Değişken bir forma (örn. sort
Ve sortInPlace
) sahip yöntemler için kullanılır . @warn_unused_result(mutable_variant="mutableMethodHere")
Derleyiciye anlatmak için eklersiniz .
Ancak, Swift 3 ile davranış ters çevrilir. Tüm yöntemler artık dönüş değerinin yakalanmadığı konusunda uyarıyor. Derleyiciye uyarının gerekli olmadığını söylemek istiyorsanız @discardableResult
, yöntem bildiriminden önce ekleyin .
Dönüş değerini kullanmak istemiyorsanız , derleyiciye bir alt çizgiye atayarak bunu açıkça belirtmeniz gerekir:
_ = someMethodThatReturnsSomething()
Swift 3'e eklemek için motivasyon:
- Olası hataların önlenmesi (örn.
sort
koleksiyonu değiştirdiğini düşünerek)
- Diğer ortak çalışanlar için net bir şekilde yakalama veya sonucu yakalama gereği
UIKit API'sinin bunun arkasında olduğu görülüyor , dönüş değerini yakalamadan @discardableResult
tamamen normal (daha yaygın değilse) kullanım için eklenmiyor popViewController(animated:)
.
Daha fazla oku