Saya hanya ingin tahu bagaimana saya akan melakukan ini. Jika saya memiliki sebuah fungsi, dan saya ingin sesuatu terjadi ketika itu dijalankan sepenuhnya, bagaimana cara menambahkan ini ke dalam fungsi? Terima kasih
function
swift
completionhandler
traw1233
sumber
sumber
Jawaban:
Katakanlah Anda memiliki fungsi download untuk mendownload file dari jaringan, dan ingin diberi tahu saat tugas download telah selesai.
Semoga membantu.
sumber
Saya kesulitan memahami jawabannya, jadi saya berasumsi bahwa pemula lain seperti saya mungkin memiliki masalah yang sama dengan saya.
Solusi saya melakukan hal yang sama seperti jawaban atas tetapi semoga sedikit lebih jelas dan mudah dipahami untuk pemula atau orang yang hanya mengalami kesulitan memahami secara umum.
Untuk membuat fungsi dengan penangan penyelesaian
untuk menggunakan fungsi tersebut
Output Anda akan
Semoga ini membantu!
sumber
Contoh Swift 4.0 sederhana:
Bagaimana cara menggunakannya:
sumber
Kita bisa menggunakan Closures untuk tujuan ini. Coba berikut ini
Di beberapa titik kita dapat memanggil fungsi ini seperti yang diberikan di bawah ini.
Silakan lihat tautan berikut untuk informasi lebih lanjut tentang Penutupan .
https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Closures.html
sumber
Swift 5.0 +, Sederhana dan Pendek
contoh:
Gaya 1
Gaya 2
Menggunakan:
Keluaran
sumber
Saya sedikit bingung tentang penangan penyelesaian yang dibuat khusus. Dalam contoh Anda:
Katakanlah Anda memiliki fungsi unduh untuk mengunduh file dari jaringan, dan ingin diberi tahu ketika tugas unduhan telah selesai.
Anda
// download code
akan tetap dijalankan secara asinkron. Mengapa kode tidak langsung masuk ke Andalet flag = true
dancompletion Handler(success: flag)
tanpa menunggu kode unduhan Anda selesai?sumber
Selain di atas: Penutupan jejak dapat digunakan.
sumber