次にvHelloWorldAppDelegate.mも読んでみる
とりあえず、ヘッダはなんとなく分かったので
次は本命のHelloWorldAppDelegate.mで進めてみます。
ちょっと長いので、まずは先に呼び出される
HelloWorldAppDelegateからやってみます
@implementation HelloWorldAppDelegate @synthesize window; - (void)applicationDidFinishLaunching:(UIApplication *)application { CGRect screenBounds = [[UIScreen mainScreen] applicationFrame]; CGRect windowBounds = screenBounds; windowBounds.origin.y = 0.0; self.window = [[UIWindow alloc] initWithFrame: screenBounds]; myMainView = [[MainView alloc] initWithFrame: windowBounds]; [window addSubview:myMainView]; // Override point for customization after application launch [window makeKeyAndVisible]; } - (void)dealloc { [myMainView release]; [window release]; [super dealloc]; } @end
まずはimplementationはクラス定義です。
基本的にはこのような書き方になります。
@implementation クラス名
メソッド定義
@end
独自クラスであればヘッダファイルのinterface部分に記載する必要がありますが
今回はDelegateとしてapplicationDidFinishLaunchingとdeallocはオーバライドしているだけなので
宣言する必要はありません。
で、中身で、まずは最初の3行
CGRect screenBounds = [[UIScreen mainScreen] applicationFrame]; CGRect windowBounds = screenBounds; windowBounds.origin.y = 0.0;
ここで、ステータスバー(1番上の電波状況とか出てる部分)を除く部分を返します。
そして、Windowの右上を0×0に指定しています。
self.window = [[UIWindow alloc] initWithFrame: screenBounds];
myMainView = [[MainView alloc] initWithFrame: windowBounds];
[window addSubview:myMainView];
ここで親としてwindowを作成して、そこにMainViewをwindowのSubViewとして貼付けています。
- (void)dealloc { [myMainView release]; [window release]; [super dealloc]; }
これはHelloWorldAppDelegateクラスが解放される時に呼ばれ、
その中で今まで作成したオブジェクトを解放しています。