前言:當我菜鳥時期看見公司專案時,發現以前學習的 Swift 的知識太淺,在專案上常常看到不懂的寫法感到困惑。

例如什麼是閉包 closure、@escaping、函數裡面參數為
Completion Handler 幹嘛用

在此寫個筆記記錄起來,有錯誤請指教!

說穿了 Completion Handler 只是閉包參數的命名的 Callback
然後閉包只是一種匿名 function

這裡將用程式碼解释什麼是 Completion Handler
它是如何工作的,為什麼我們需要它。

為了清楚地理解 Completion Handler和閉包的處理,這裡我會補充一些簡單知識,以及同步 synchronous 和異步 asynchronous 的概念。

function 任務通常是一個異步執行 async,這意味著我們不知道它什麼時候結束。

比如我們完成下載資料後更新 UI,我們該如何發生下一個任務?

換句話說,我們怎樣才能有序列執行任務?

在一個函數中,如果需要在完成另一個任務後在執行下一個任務,那麼要如何發生這件任務?

所有這些問題都可以用 Completion handler 來解決。

先製作一個 Completion handler 。 創建一個 closure,然後傳遞給函數。

--

--

看到 VoiceTube 有個零元挑戰的活動,想說藉由這個機會來使用這套系統來學英文,但是挑戰前請先付費,要挑戰完成課程才能夠全額退費,剛好可以逼自己更勤勞的練習英文,養成唸英文的好習慣, 這樣子的挑戰能夠刻意幫自己創造更多動力,就決定來挑戰看看了。

課程分為五個部分,每個部分採用不同的教學方式,讓我們可以複習之前學過的影片,有 Web 和 App 版可以來使用。

每一堂都以一個影片為主題,先讓你看影片,看完後再回答一系列題目,一方面可以加深對影片的印象,另一方面也可以回想英文的運用。

看英文影片

--

--