[iOS][Objective-C]プロトコルを用いたコールバック関数実装

非同期通信を行なう部分をライブラリ化したいと思ったら,
通信完了後に呼び出すコールバック関数を実装するのをどうやるんだろうと疑問に思った.

下記を参考にやり方を把握した.(他にも適切な方法があるかもしれない)
http://d.hatena.ne.jp/sugyan/20091213/1260708978

プロトコル(JavaのInterface)を利用して実装することができる.

キーになるのは下記だと思う.
(1)コールバック関数として,登録したい関数をプロトコルで宣言する.
(2)Delegateで呼び出し側のクラスのポインタ(self)をライブラリ側に渡す.
(3)ライブラリ側は(2)で得たDelegateのポインタを利用して(1)の関数を呼び出す

一般的なライブラリではdelegateを指定することが多いが,
その理由も上記内容を理解すれば納得できると思う.

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>