libro
www.tuyano.com
初心者のためのiphone/ipadプログラミング入門

デフォルトのソースコードをチェックしよう! (4/5)

作成:2011-03-08 10:15
更新:2011-03-08 10:25

■UIApplicationDelegateの実装

では、UIApplicationDelegate.mの内容に進みましょう。ここではいろいろと面倒なものが登場しています。まず、#import で、MyIAppAppDelegate.h と、MyIAppViewController.h が読み込まれています。MyIAppAppDelegate.h は、先ほど説明したヘッダーですね。もう1つのMyIAppViewController.h は、この後に登場するクラスで、実際にGUIの表示を扱うためのものです。

その後に、@synthesizeという見慣れないものが登場します。以下の2文ですね。
@synthesize window;
@synthesize viewController;
これは、先ほどヘッダーファイルで定義した「プロパティ」を使えるようにするためのものです。これで、windowとviewControllerがプロパティとして利用出来るようになるのですね。


#pragmaとは?

その後に、#pragmaというのがあります。これは「コンパイラディレクティブ(指令)」というもので、コンパイラ固有の指定を記述するためのものです。ここでは、#pragma markというものが使われています。これを記述すると、Xcodeのシンボルを表示するポップアップメニューで指定の項目が表示されるようになります。まぁ、実際にプログラムとして何かを実行するというものではありません。


◯空のメソッドたちの意味は?

ここでは、たくさんのメソッドがありますが、その多くは、何も実装されていません。これらの「空っぽのメソッド」は、UIApplicationDelegateプロトコルに用意されている「必ず実装しないといけない必須メソッド」たちです。

すぐに使うというわけではないけれど、アプリケーションで何かのイベントを処理したいようなときには、これらのメソッドに処理を記述してやるわけです。今すぐ何かをする必要はありません。


application:didFinishLaunchingWithOptions:

デフォルトで処理が記述されているのは、このメソッドですね。これは、アプリケーションの起動が行われた際に呼び出されるメソッドです。ここでは、以下の2つのメッセージを送信しています。
[self.window addSubview:viewController.view];
[self.window makeKeyAndVisible];
1つ目は、viewControllerプロパティのviewプロパティの値を、ウインドウのサブビューとして組み込む、というものです。この後に登場するMyIAppViewControllerクラスのインスタンスに保管されている「ビュー」というのを、これでウインドウに表示させています。

ビューというのは、画面の表示を行うGUI部品の基本となるものといっていいでしょう。まぁ、詳細はいずれ少しずつわかってくると思いますので、「これで画面の表示が行われている」と考えておきましょう。

2つ目は、「キーウインドウ」というウインドウ(要するにメインウインドウみたいなもの)を実際に表示するためのものです。これでウインドウが表示され、アプリケーションの起動が完了します。
- (void)dealloc
最後の方に、もう1つ実装がされているメソッドがありますね。deallocはインスタンスが破棄される際の処理を行うものです。2つのプロパティのreleaseを呼び出しています。これは、このオブジェクトを解放するためのものです。つまり終了する前に、使っていたインスタンスを開放していたというわけです。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

※MyIAppAppDelegate.m

#import "MyIAppAppDelegate.h"
#import "MyIAppViewController.h"

@implementation MyIAppAppDelegate

@synthesize window;
@synthesize viewController;

#pragma mark -
#pragma mark Application lifecycle

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:
        (NSDictionary *)launchOptions {    
    [self.window addSubview:viewController.view];
    [self.window makeKeyAndVisible];
    return YES;
}

- (void)applicationWillResignActive:(UIApplication *)
        application { }

- (void)applicationDidEnterBackground:(UIApplication *)
        application { }

- (void)applicationWillEnterForeground:(UIApplication *)
        application { }

- (void)applicationDidBecomeActive:(UIApplication *)
        application { }

- (void)applicationWillTerminate:(UIApplication *)
        application { }

#pragma mark -
#pragma mark Memory management

- (void)applicationDidReceiveMemoryWarning:
        (UIApplication *)application { }

- (void)dealloc {
    [viewController release];
    [window release];
    [super dealloc];
}

@end
※関連コンテンツ

「初心者のためのiphone/ipadプログラミング入門」に戻る