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アプリデベロッパーなので、間違っている事とか、書いているかも。参考にならない事ばかりだと思うので、ここまで読んでしまった人は忘れましょう。(笑)

おそらくは、この文書も、後日、何らかの形で解釈をオーバーライドして紹介する形になると思います。

閲覧数: 1560 / はてなブックマークusers

関連商品

amazon.co.jp・詳細ページへ

blog comments powered by Disqus

関連日記

アマゾン広告

この日記ページは閲覧数などの条件に応じて、閲覧制限を行っています。他からリンクしていただいても、そのリンクから辿った閲覧者が当ページの内容をご覧頂けない場合があります。ご了承下さい。

▼日記検索

Mac

Shade

3D

Flash

ゲーム

ウェブ

音楽

映画

デジカメ

Windows

Linux

携帯電話

テレビ

広島

電子工作

iOS

▼ 最近のトラックバック

▼ランキング

▼関連サイト