iOSメモ01 〜iOSの基礎〜
学習の記録を自分用にメモしようかと。
従って、この記事だけを読んでも何もわかりません……。
MVC
iOSはMVCを採用している。Mode-View-Controller : MVC
- Model:アプリケーションデータを保持するクラス
- View:ユーザが見てインタらくとできるウインドウ、コントロール、その他の要素から構成
- Controller:ModelとViewを結びつけ、ユーザのインプットをどう処理するかを決定するアプリケーションロジック
MVCは、この3つのタイプのソースコードを実装するオブジェクトそれぞれの違いを、可能な限り明確にする。
オブジェクトは必ずこの3つのカテゴリーのどれに属するかが容易に把握できるものでなければならない。
役割を分担することによって、再利用性を最大限確保することができる。
用語説明
nib
アプリケーションのメインInterface Builderのファイルアウトレット
コントローラクラスは、「アウトレット」という特殊なインスタンス変数を使って、nibのオブジェクトを参照することができる。アクション
アクションはコントローラクラスの一部であるメソッド。IBActionという特別のキーワードで宣言される。
アクションがInterface Builderに対して、このメソッドはアクションであり、コントロールによってトリガーされると伝えてくれる。
インタラクティブなアプリケーション
アクションとアウトレットをビューコントローラ(View Controller.h)に追加。@property宣言
クラスのインスタンス変数の値を設定し検索するために、従来はaccessor&mutator , getter&setterを使っていた。
これに代わって登場した手法が@property宣言である。
@property宣言と、実装ファイルの中の@synthesizeが組み合わさって、
コンパイル時にゲッタとセッタメソッドを作成するようコンパイラに命じる。
つなぐ
UIViewControllerのインスタンスもしくはそのサブクラスの1つがインスタンス化されると、nibから自分自身をイニシャライズするように指示が出される。ViewControllerのインスタンスは、アプリケーションが起動した際に自動生成される。
すると、インスタンスは自動的にViewController.xibをメモリに読み込み、ファイルのオーナーとなる。
File's Ownerからインターフェースオブジェクトにコントロール-ドラッグすることによって、File's Ownerのアウトレットをnibファイルが読み込まれている間は、そのオブジェクトに接続していたいことをInterface Builderに知らせる。
そして、例えばFile's Ownerからラベルオブジェクトへコントロール-ドラッグし、現れたポップアップメニューからsampleTextを選択した時には、ViewControllerのsampleTextアウトレットをラベルにポイントするようにInterface Builderに指示を出す。
これによって、ソースコードでsampleTextを参照すれば、いつでもラベルを扱うことができる。