プログラマメモ2 - programmer no memo2

applicationDidFinishLaunchingって? 2008/11/18

iphoneの開発初日です。
先週は、エディタでコード書いてで、gccでコンパイルしていましたが、そろそろXcodeを使いはじめます。
プロジェクトテンプレートからスタートして頭が???になったのでメモしておきます。

mainからどういったシーケンスで動くのだろうとおいかけようとしたら、いきなり下記のコードで悩みました。

#import <UIKit/UIKit.h>

int main(int argc, char *argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
int retVal = UIApplicationMain(argc, argv, nil, nil);
[pool release];
return retVal;
}




UIApplicationMainで設定を読みこんでdelegateで実行って感じのようです。
おそらく、
Info.plistのNSMainNibFileのxxxをよんで、xxx.xibを読みこんでクラスを決定して、そのクラスには、applicationDidFinishLaunchingが実装されていて、画面の初期化が終わってからユーザー定義のapplicationDidFinishLaunchingが実行という流れかな。

applicationDidFinishLaunchingが自分で行う初期化の実装箇所のようです。

ちなみに、UIはInterfaceBuilderを使ってツールで作成のようです。
Xcode上で、xxx.xibをダブルクリックするとInterfaceBuilderが起動します。
右クリックメニューから「形式を指定して開く」でテキストとしてみると中身はxmlでいろいろ定義してあります。


- (void)applicationDidFinishLaunching:(UIApplication *)application {
// ここで初期化処理。
}


参考
iphone開発でもNSLogは使えます。
Xcode [実行]-[コンソール]でNSLogが出力されるコンソールがでてきます。
ログ出力

: