Objective-CのブロックとSwiftのクロージャー

iOSのアプリ開発において、Objective-Cではブロック、Swiftではクロージャーが往々にして使われる。これらはそのメソッド内しか使わないような関数のコールバック処理などで効力を発揮するものであり、是非とも覚えておきたいものである。

Objective-Cのブロック

Objective-C1 では、ブロックとして表現することができる。

例えば、処理中には以下のような書き方ができる。

上記のコードは以下のようにして呼び出すことができる。

この場合は、5がreturnされる。

なお、Objective-Cにおいては、その言語仕様上、型の指定などでかなり複雑になるので要注意である。

Swiftのクロージャー

Swiftでは、ブロックの代わりにクロージャーが実装されているので、それを利用することで実現可能である。

Objective-Cで書かれたコードは、以下のように表現できる。

この場合も、getMax(3, 5)で5がreturnされる。

最近ではmacOSやiOSのプログラムではブロックやクロージャーを多用する傾向もあるので、是非とも使いこなしていきたいものである。

ウェブマスター。本ブログでITを中心にいろいろな情報や意見などを提供しています。ご用の方はコメントかコンタクトフォームにて。

  1. 正確にはC言語のアップル拡張機能なのだが、この項目ではObjective-Cの機能として扱う []
スポンサーリンク

フォローする