[iPhone]Objective-Cの勉強メモ:デリゲートについて
アプリケーション自身とか、オブジェクト(クラス)が最初から持っている固有の動作(イベント的なメソッド?)がある。
たとえば、
アプリ起動時に実行されるメソッド、とか
アプリ起動中に着信があった場合に実行されるメソッド、とか
アプリ終了時に実行されるメソッド、など。
これらのメソッドは誰が実行するかを決めた上で、メソッドの中身を実装する必要がある。
誰が(どのクラスが?)、を決める作業をデリゲートを登録するという。
登録はIBのInspectorウィンドウから行う。
(IB使わなくてもObj-Cからも可能)
デリゲートとして登録されたクラスにそれぞれのメソッドを実装することで機能として使えるようになる。
感覚的には各クラスに用意されているメソッドをオーバーライドしているのと同じだろうけど、サブクラスを作る必要がなく、関連の無いクラスからでも、(オーバーライドしたようなメソッドとして)実行することができる。
IBで配置したオブジェクトについていちいちサブクラス作るのメンドイからこの仕組みがあるのかも。
Tweet
4 Comments
はじめまして。
私もiPhoneアプリの開発を始めている者です。
いつも開発の先輩のブログを拝見して勉強させていただいています。
現在、この記事にある「着信があった場合に実行されるメソッド」を使って着信した電話番号を取得して処理を分岐させるといったプログラムを書いています。
『Avaya one-X』というアプリでは処理を分岐させているので可能なのでしょうけれど調べているのですが、着信があった場合に実行されるメソッドで着信のあっている電話番号を取得する方法がわかりません。
もし、よろしければご教授いただけないでしょうか?
そうなんですねー。
私もググって、見つからず。
本を探して、見つからず。
なので、質問させていただきました。
お忙しいのに、回答していただいてありがとうございました。
これからもブログ拝見させていただきますので、楽しみにしております。