iOS中程序启动流程

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(代理协议)

 

转载于:https://www.cnblogs.com/wohaoxue/p/4821243.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值