【Swift】クロージャを使った非同期処理の解説

ファイルのダウンロードや画像処理の関数はSwiftで用意されていますが、いずれも非同期でcompletionHandler(=クロージャ、コールバック関数)をパラメータに取るものが多いです。

以下はクロージャを使った非同期処理の例です。地図のスナップショットを撮影する関数を作成しています。

スナップショットを撮影するMKMapSnapshotterのstartはクロージャをパラメータに取ります。

クロージャをパラメータにしている関数を呼び出す関数自身もクロージャを引数にすると、エラーが発生した場合はcompletionでnilを返すことができます。