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

NSXMLparserクラスはparserとかいいながら
XMLをDictionaryのデータにしてくれるとかはしてくれません
そういう処理はデリゲートにやらせます
[myXMLparser setDelegate:myParser]
ってカンジでデリゲートを登録すれば
myXMLparserはXMLのパース処理の際に
タグの開始でデリゲート登録されたmyParserの
parser:didStartElement:namespaceURI:qualifiedName:attributes:
を呼び出してそれぞれに引数をいれて実行します
デリゲートにどんなメソッドを実行させるかは
ヘルプのデベロッパドキュメントで調べる事ができます
cocoaバインディング
cocoaバインディングのイメージ
通常は

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

コントローラはビューのactionを受けて
ビューからではなくモデルからoutletの値を取得
そしてまたビューではなく
モデルのoutletに値を処理結果を返します
コントローラがやる事はこれだけ
あとはバインディング用のコントローラが
ビューにkey値でモデルからもらったoutletから
値を取り出して同期してくれます
このバインディングはInterfaceBuilderのGUIでできるので
コーディングはかなり少なくなります
通常は

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

コントローラはビューのactionを受けて
ビューからではなくモデルからoutletの値を取得
そしてまたビューではなく
モデルのoutletに値を処理結果を返します
コントローラがやる事はこれだけ
あとはバインディング用のコントローラが
ビューにkey値でモデルからもらったoutletから
値を取り出して同期してくれます
このバインディングはInterfaceBuilderのGUIでできるので
コーディングはかなり少なくなります
Xcode開発の流れ
cocoaセミナーの初級編動画見たかんじの
大体のXcodeによる開発の流れです

InterfaceBuilderはASとかならイベントリスナーを使って
イベント発信とかリスナー登録とかのコーディングするところが
ドラッグしてactionとしてメソッド選択するだけでリスナー登録できます
ウインドの最小化とか
基本的な終了、やり直しなどの
操作のメニューが用意されますし
実質コーディングするのは
作りたい機能の実装ファイルだけで
アプリケーションの基礎になるものは
一通り用意してくれているので
簡単なアプリケーションは
とても簡単にできるカンジです
コアな開発者はInterfaceBuilderなど使わない様ですが
最初はInterfaceBuilderつかっといた方が無難でしょうね
その必要に迫られない限りはInterfaceBuilder使った方が
多分かなり労力節約になると思います
大体のXcodeによる開発の流れです

InterfaceBuilderはASとかならイベントリスナーを使って
イベント発信とかリスナー登録とかのコーディングするところが
ドラッグしてactionとしてメソッド選択するだけでリスナー登録できます
ウインドの最小化とか
基本的な終了、やり直しなどの
操作のメニューが用意されますし
実質コーディングするのは
作りたい機能の実装ファイルだけで
アプリケーションの基礎になるものは
一通り用意してくれているので
簡単なアプリケーションは
とても簡単にできるカンジです
コアな開発者はInterfaceBuilderなど使わない様ですが
最初はInterfaceBuilderつかっといた方が無難でしょうね
その必要に迫られない限りはInterfaceBuilder使った方が
多分かなり労力節約になると思います