TL; DR
popViewController(animated:)kembali UIViewController?, dan kompilator memberikan peringatan itu karena Anda tidak menangkap nilainya. Solusinya adalah dengan menetapkannya ke garis bawah:
_ = navigationController?.popViewController(animated: true)
Swift 3 Perubahan
Sebelum Swift 3, semua metode memiliki "hasil yang dapat dibuang" secara default. Tidak ada peringatan yang akan terjadi jika Anda tidak menangkap apa yang dikembalikan metode tersebut.
Untuk memberi tahu compiler bahwa hasilnya harus diambil, Anda harus menambahkan @warn_unused_resultsebelum deklarasi metode. Ini akan digunakan untuk metode yang memiliki bentuk yang bisa berubah (mis. sortDan sortInPlace). Anda akan menambahkan @warn_unused_result(mutable_variant="mutableMethodHere")untuk memberi tahu kompilernya.
Namun, dengan Swift 3, perilakunya terbalik. Semua metode sekarang memperingatkan bahwa nilai yang dikembalikan tidak ditangkap. Jika Anda ingin memberi tahu compiler bahwa peringatan tersebut tidak diperlukan, Anda menambahkan @discardableResultsebelum deklarasi metode.
Jika Anda tidak ingin menggunakan nilai yang dikembalikan, Anda harus memberi tahu compiler secara eksplisit dengan menetapkannya ke garis bawah:
_ = someMethodThatReturnsSomething()
Motivasi untuk menambahkan ini ke Swift 3:
- Pencegahan kemungkinan bug (mis. Menggunakan
sortpemikiran itu memodifikasi koleksi)
- Maksud eksplisit untuk tidak menangkap atau perlu menangkap hasil untuk kolaborator lain
UIKit API tampaknya tertinggal dalam hal ini, tidak menambahkan @discardableResultuntuk penggunaan normal sempurna (jika tidak lebih umum) popViewController(animated:)tanpa menangkap nilai yang dikembalikan.
Baca lebih banyak