码迷,mamicode.com
首页 > 移动开发 > 详细

iOS中程序启动流程

时间:2015-09-19 12:23:56      阅读:243      评论:0      收藏:0      [点我收藏+]

标签:

1.任何一个程序,无论是基于Mac OS 还是 iOS,程序都是从main.m文件的main函数开始执行的.

#import <UIKit/UIKit.h>

#import "AppDelegate.h"

 

int main(int argc, char * argv[]) {

    @autoreleasepool {

        return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));

    }

}

 

1、principalClassName:应?用程序对象的类名(UIApplication或其?子类)! 

2、delegateClassName:应?用程序delegate的类名。(任何接受了 UIApplicationDelegate的类)! UIApplicationMain根据上述两个类名创建应?用程序实例、应?用程序代理实例。

然后建?立事件循环(runloop),检测程序的各种事件(程序开始启动,接收到触 摸等等)


UIApplicationMain在程序入口函数mian函数中调用,主要实现了3个功能:

1.创建应用程序(UIApplication)实例

2.创建应用程序代理实例

3.建立事件循环(runloop:死循环,不断检测程序运行状态,是否被触动,摸,晃动等)


2.执行UIApplicationMain 函数时做了跳转,转到了AppDelete(应用程序代理)中

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {}

方法中创建Windown 


AppDelete

1.应?用程序代理,主要检测应?用程序的状态并做出相应的处理。

2.应?用程序的状态有很多,?比如:程序启动、进?入活跃状态、进到后 台、内存警告、收到远程消息等等

3.任何接受了UIApplicationDelegate协议的对象都可以成为应?用程序 代理。

4.一旦应?用程序的某种状态触发,就会执?行相应的代理?方法。 

 

    UIApplicationdelegate(代理协议)

技术分享

 

iOS中程序启动流程

标签:

原文地址:http://www.cnblogs.com/wohaoxue/p/4821243.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!