您的位置:首页 > 移动开发

UIApplicationMain(都做了什么)

2015-03-28 20:52 197 查看
转自:http://blog.sina.com.cn/s/blog_48fb2901010135p1.html

在iOS应用中,每个程序得main函数中都调用了UIApplicationMain函数。

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

{

@autoreleasepool
{

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

}

}

先来看看UIApplicationMain函数的原型:

int
UIApplicationMain
(

int
argc,

char
*argv[],

NSString
*principalClassName,

NSString
*delegateClassName

);

前面的argc和argv是ISO C标准的main函数的参数,直接传递给UIApplicationMain进行相关处理。

principalClassName是应用程序类的名字,该类必须继承自UIApplication类。

而delegateClassName是应用程序类的代理类。如果主要nib文件(在info.plist文件中指定,key是NSMainNibFile)存在,就会在nib文件对象里寻找Application对象和连接它的delegate。此函数会根据principalClassName创建UIApplication对象,然后根据delegateClassName创建一个delegate对象,并将UIApplication对象中的delegate属性设置为delegate对象。

接着会建立应用的main runloop,进行事件的处理(首先会调用–application:didFinishLaunchingWithOptions:)。程序正常退出时才返回(如今iOS支持后台运行,系统在必要时会强行杀死不用的进程,一般这个函数不等返回进程就终止了)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: