2010年05月11日
デリゲート @ iPod touch
Objectvive-Cに関わる言葉の一つとして書いたデリゲートですが、先日の説明はやや不足していたかも。
デリゲートってモノは、実際に代理処理なのだけど、代理というからには、自分でも処理出来るって事なんですよね。だからこそ代理って言葉になるワケですね。
今までサンプルなどを見ながら色々と試して、この書き方はこういうモノだという認識でやってましたが、その書き方がデリゲートってモノと役割が繋がる事で、やっている事の意味が理解出来た気がする。この辺はUITableViewの挙動から何となく分かっていたのだけど、やはり何となくなので、今までよく分かってなかった。
iPhoneアプリを開発する上で、理解すべきなのは、色々な意味で、上書きなんだな思う。デリゲートに関して言えば、UIViewを元にしたサブクラスを作ってInterface BuilderでClass Indentityで指定すれば、多分他に代理処理を依頼しなくても良い形かな。ただ、これは一般的でない気もするし、状況によっては都合が悪い事が多いかも。
作り方として、XcodeでUIViewControllerを継承したサブクラスを作って、xibも同時に生成させる様な形が一般的だとすると、多分、何らかの処理をコントローラーに書いてしまう形が都合が良かったりして、そうするとデリゲートの設定をFile's Ownerにすると、自動的にUIViewControllerを継承して作ったサブクラスに繋がります。(サブクラスを作る時にxibを同時に作ってない場合は、Class Indentityの所で、コントローラーの指定をする必要があります。)
ちなみにUITableViewだとUITableView.hの中を見るとデリゲートとして使えるプロトコルが分かったりします。 @protocol UITableViewDelegate この辺りから下を見ると、色々と書かれてあるのですが、@optional となっているので、必要なモノだけを取り出して、使いたい部分をだけをコントローラーに書いてデリゲートして指定すれば使えますね。自分でクラスを実装する場合などにも参考になりそうです。
正直言って、まだまだ色々な状況の経験不足ではあるので、実際にどの様な形だと具合悪くなるのか等、やってみないと分からない状況が多くあります。XcodeにしてもObjectvive-Cにしても、最初の頃は、何故にこうなっているのだろうとか、疑問の方が先行していましたが、分かってくると徐々に、使いやすくなっている事に気付いてきている気がします。Xcodeに関しては、やはりFlex Builder(Eclipse)の様な協力に色々な事をアシストしてくれるエディターと比べてしまい、機能不足を感じますが、シンプルに削ぎ落としている分、今後多くのファイルを一つのプロジェクトで扱った場合などは、シンプルな事が功を奏すのかなと思ったり・・・。
まだまだ、新米のiPhoneアプリデベロッパーなので、間違っている事とか、書いているかも。参考にならない事ばかりだと思うので、ここまで読んでしまった人は忘れましょう。(笑)
おそらくは、この文書も、後日、何らかの形で解釈をオーバーライドして紹介する形になると思います。
関連日記
- 2010年05月21日 デリゲートの図 (2913)@ iPod touch
- 2010年05月06日 Objective-Cに関わる言葉 (2720)@ iPod touch
アマゾン広告
この日記ページは閲覧数などの条件に応じて、閲覧制限を行っています。他からリンクしていただいても、そのリンクから辿った閲覧者が当ページの内容をご覧頂けない場合があります。ご了承下さい。