UIViewとUIViewControllerのお話(2) | 初心者がiPhoneアプリを作るブログ

初心者がiPhoneアプリを作るブログ

初心者がiPhoneアプリを作るブログです.
入門レベルですので開発初心者にも,できるだけ分かるように丁寧に説明していきます(多分).

はい,それではコードを書きますね.

まずは,UIViewControllerを作ります.下に書きます1行を追加して下さい.

// Override point for customization after application launch


UIViewController *controller = [[UIViewController alloc] initWithNibName:nil bundle:nil];


では,この1行を解説していきましょう.

まず,
UIViewController *controller

この部分で,UIViewControllerの変数を宣言しています.

C言語の基礎が分かる人はお分かりかと思いますが,ポインタ変数として宣言されています.

iPhoneアプリを作るに際しまして,「UI~」「NS~」ではじまる型名をよく見るようにります.

これらの変数はポインタ変数として宣言してください.

次に,
[[UIViewController allocinitWithNibName:nil bundle:nil]
この部分ですが,プログラミングの経験がある人でも分かりにくい場所となっています.

まず前半の
[UIViewController alloc]

の部分でUIViewController型のインスタンスを生成します.

この返り値はUIViewController型のインスタンスになります.

さらに後半の
["インスタンス" initWithNibName:nil bundle:nil]

の部分で生成したインスタンスの初期化を行っています.

この返り値は初期化したインスタンス自身となります.


つまり

UIViewController *controller = [[UIViewController alloc] initWithNibName:nil bundle:nil];

この部分では,
・UIViewController型の変数を宣言
・UIViewController型のインスタンスを生成
・UIViewController型のインスタンスの初期化
・UIViewController型の変数にインスタンスを代入
しているわけなんですね!!!

つまり,UIViewControllerを作成したわけです.

UIViewControllerに限らず,UIViewやその他の「UI ~」「NS~」も
その型のインスタンスを生成する場合は,

・インスタンスを生成(["型名" alloc])
・インスタンスの初期化(["インスタンス" init] or ["インスタンス" initWith~])



という流れで生成していきます.今後頻繁にでてきますので,嫌でも覚えますね笑

次の記事へ

HOMEに戻る