おいしいAS3 -16ページ目

デリゲートってこういうこと

$おいしいAS3


NSXMLparserクラスはparserとかいいながら
XMLをDictionaryのデータにしてくれるとかはしてくれません
そういう処理はデリゲートにやらせます

[myXMLparser setDelegate:myParser]

ってカンジでデリゲートを登録すれば
myXMLparserはXMLのパース処理の際に
タグの開始でデリゲート登録されたmyParserの
parser:didStartElement:namespaceURI:qualifiedName:attributes:
を呼び出してそれぞれに引数をいれて実行します

デリゲートにどんなメソッドを実行させるかは
ヘルプのデベロッパドキュメントで調べる事ができます

cocoaバインディング

cocoaバインディングのイメージ

通常は

$おいしいAS3


こんなカンジでコントローラはビューのactionを受けて
ビューからoutletの値を取得、モデルで値を処理してから
処理結果の値をビューのoutletの値に返す
ってカンジにします

バインディングを使うと

$おいしいAS3

コントローラはビューのactionを受けて
ビューからではなくモデルからoutletの値を取得
そしてまたビューではなく
モデルのoutletに値を処理結果を返します
コントローラがやる事はこれだけ

あとはバインディング用のコントローラが
ビューにkey値でモデルからもらったoutletから
値を取り出して同期してくれます

このバインディングはInterfaceBuilderのGUIでできるので
コーディングはかなり少なくなります

Xcode開発の流れ

cocoaセミナーの初級編動画見たかんじの
大体のXcodeによる開発の流れです

$おいしいAS3

InterfaceBuilderはASとかならイベントリスナーを使って
イベント発信とかリスナー登録とかのコーディングするところが
ドラッグしてactionとしてメソッド選択するだけでリスナー登録できます

ウインドの最小化とか
基本的な終了、やり直しなどの
操作のメニューが用意されますし

実質コーディングするのは
作りたい機能の実装ファイルだけで
アプリケーションの基礎になるものは
一通り用意してくれているので
簡単なアプリケーションは
とても簡単にできるカンジです

コアな開発者はInterfaceBuilderなど使わない様ですが
最初はInterfaceBuilderつかっといた方が無難でしょうね

その必要に迫られない限りはInterfaceBuilder使った方が
多分かなり労力節約になると思います