[XCODE] iPhoneアプリが立ち上げるまでの仕組み
今日は、ライトなネタです。
iPhoneアプリがmain関数からどのように起動しているんだろうと疑問を思い、 色々と調べました。
開発で良く使うUIViewControllerへコントロールが来るまでをブログに書きたいと思います。

(main関数のところ)
この指定により、AppDelegateでアプリ起動時や起動後に処理を実行できるようになります。
続いて、AppDelegateクラスの実装です。
ここでは、アプリの起動後やアプリがバックグラウンドに移動する際などに、処理を実行する事が可能です。
アプリ起動時には「application:didFinishLaunchingWithOptions:」が呼び出されるので、 ここでWindowの作成や、呼び出すViewControllerを作成し、画面に表示します。
(AppDelegateのapplication:didFinishLaunchingWithOptions:のところ)
これの後は、通常のアプリ開発と一緒で、 RootViewControllerを実装していくことが出来ます(*´∇`*)
他にも色々とやりかたはあると思いますが、一つやり方が分かって良かったぁ。
最後までお読み頂きましてありがとうございました。
iPhoneアプリがmain関数からどのように起動しているんだろうと疑問を思い、 色々と調べました。
開発で良く使うUIViewControllerへコントロールが来るまでをブログに書きたいと思います。

iPhoneアプリが起動するところまでのソースコード
こんな感じのようです。main関数から起動するのは、他のCやC++のソースと一緒です。(main関数のところ)
#importUIApplicationMain関数を実行する際に、delegate「AppDelegate」のクラス名を指定しています。#import "AppDelegate.h" int main(int argc, char *argv[]) { @autoreleasepool { return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); } }
この指定により、AppDelegateでアプリ起動時や起動後に処理を実行できるようになります。
続いて、AppDelegateクラスの実装です。
ここでは、アプリの起動後やアプリがバックグラウンドに移動する際などに、処理を実行する事が可能です。
アプリ起動時には「application:didFinishLaunchingWithOptions:」が呼び出されるので、 ここでWindowの作成や、呼び出すViewControllerを作成し、画面に表示します。
(AppDelegateのapplication:didFinishLaunchingWithOptions:のところ)
#import "AppDelegate.h"
@implementation AppDelegate
・・・省略・・・
// アプリを起動する際に呼び出されるメソッド
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// まずはWindowのインスタンスを画面サイズに合わせて作成する
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Window上に表示するViewControllerのインスタンスを作成する
// initWithNibNameにNibファイルを指定することで、
// Interface Builderで作成したNibファイルを読み込める
rootViewController = [[RootViewController alloc] initWithNibName:@"RootView"bundle:nil];
// Windowに表示するViewをSubViewとして追加する。
[self.window addSubview:rootViewController.view];
// Windowを表示する
[self.window makeKeyAndVisible];
// 処理が成功したのでYESを返す
return YES;
}
これの後は、通常のアプリ開発と一緒で、 RootViewControllerを実装していくことが出来ます(*´∇`*)
最後に
main関数からのViewControllerまでにコントロールが移動してくるところが、 よくわかっていなかったですが、今回でスッキリして良かったです(・∀・)他にも色々とやりかたはあると思いますが、一つやり方が分かって良かったぁ。
最後までお読み頂きましてありがとうございました。






