Cocoaのアウトレットとアクション
IBOutlet id component;
とソースコード側でクラスにIBOutletでマーキングしたインスタンス変数
を追加して、InterfaceBuilderで作成するUIレイアウトファイル(NIB
ファイル)でUIコンポーネントとクラスを関連づけておくと、実行時に
componentに対してNIBファイルで関連づけた同名のUIコンポーネントの
インスタンスがセットされる(依存性注入が行われる)。
CocoaランタイムはDIコンテナを内包し、
NIBファイルの一部がDIコンテナ用の設定になっている。
はじめ変数を宣言するだけでインスタンスがセットされる事に違和感が
あったが、(Javaデベロッパに馴染みの深い?)依存性注入が行われている
ことに気づいて腑に落ちた。
IBOutletで修飾したインスタンス変数をアウトレットと呼称する。
CocoaではUIコンポーネントのイベントをアクションと呼ぶ。アクションと
メソッドの関連づけはInterfaceBuilderで行う。
推敲中?