11章イベント

開発者が書いたコードはCocoaから呼び出されなければ実行されません。Cocoaプログラミングにおいては、「Cocoaがいつ、どのような理由で自分のコードを呼び出すのか」を理解することが非常に大切です。これが理解できればコードを正しい場所に置くことができ、コードが正しいタイミングで実行されアプリが意図したとおりに動作します。

たとえば7章ではユーザーが特定のボタンをタップしたときに呼び出されるメソッドを作成し、該当するボタンをタップしたときに実行されるようにしました。

- (void) buttonPressed: (id) sender {
  // ... タップされたボタンに反応する
}

これがCocoaプログラムの基礎となる典型的な構造です。開発者が作成するコードは、ボタンが並んだ操作パネルのようなもので、Cocoaがどれかひとつのボタンを押してくれるのを待っています。コードに知らせ反応してもらうべきだとCocoaが思うような事象が発生すると、Cocoaはボタンを押します(該当するボタンがあればですが)。開発者はCocoaの振る舞いを思い描きながらコードを配置していくことになります。Cocoaには、いつどのようにメッセージをコードに中継するか、決まった約束事があります。それがCocoaのイベントです。各イベントがどのようなものかを理解し、Cocoaからそのイベントに関する通知があったときにそれを受け取れるようにコードを準備します。

したがって、iOS用のプログラムでは、ある意味では制御をCocoaに委ねなければなりません。作成されたコードが自ら何かをするということはありません。何らかのイベントに対する応答として動くのです。何か(たとえばユーザーが画面上で何かのジェスチャーをするなど)が起きたり、アプリの状態が変化したりすると、Cocoaがイベントをコードに配送するのです——コードのほうにイベントを受け取る体制が整っていればです。ですから、コードを置きたいところに置くというわけではありません。フレームワークを利用するということは自作のコードをフレームワークに使わせるということなのです。Cocoaの流儀に従い期待や予測に応えることで、作成したコードは呼び出されるべきときに呼び出され、使われるべき方法で使われるのです。 ...

Get 入門 iOS SDK ―初めてのiPhone/iPadプログラミング now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.