ios程序中方法的执行有没有先后顺序
展开全部
首先从main.m文件的main函数开始执行的。
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函数时做了跳转,转到了AppDelete中。应用程序代理,主要检测应用程序的状态并做出相应的处理。应用程序的状态有很多,比如:程序启动、进入活跃状态、进到后台、内存警告、收到远程消息等等。任何接受了UIApplicationDelegate协议的对象都可以成为应用程序代理。一旦应用程序的某种状态触发,就会执行相应的代理方法。UIApplicationDelegate是一个OC的协议。里面声明了一堆方法,这些方法都与应用程序运行状态有关,它们由应用程序代理实现。UIApplication对象负责调用。
application:didFinishLaunchingWithOptions:告诉delegate程序启动即将完成,程序准备要运行。(delegate实现这个方法时,要创建window对象,将程序内容通过window呈现给用户。),在该方法中为我们应用程序创建window等必要的界面
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];//初始化window
self.window.backgroundColor = [UIColor grayColor];//设置window的背景色
[self.window makeKeyAndVisible];//把window设置为主视图
[self.window setRootViewController:[[UIViewController alloc] init]];//设置window的根视图控制器
return YES;
}
applicationWillResignActive:程序即将结束活跃状态,(例如:突然来电话,短信,下来菜单栏等)就会执行该方法,一般在该方法中做一些必要信息的存储,和一些暂停动作。例如,游戏正在进行时,要暂停游戏
- (void)applicationWillResignActive:(UIApplication *)application {
NSLog(@"*****%s",__func__);//__func__打印方法名
}
applicationDidEnterBackground:程序已经进入后台,如果程序长期在后台呆着,有可能会退出,所以在该方法中要进行一些重要数据的持久化。(按Home键)
- (void)applicationDidEnterBackground:(UIApplication *)application {
NSLog(@"*****%s",__func__);
}
applicationWillEnterForeground:程序即将进入前台,一般式在程序由后台进入该程序的时候执行该方法
- (void)applicationWillEnterForeground:(UIApplication *)application {
NSLog(@"*****%s",__func__);
}
applicationDidBecomeActive:告诉delegate应用程序已经进入活跃状态(重新执行被暂停的任务),程序启动或者由后台进入前台都会执行该方法
- (void)applicationDidBecomeActive:(UIApplication *)application
{
NSLog(@"*****%s",__func__);
}
applicationWillTerminate:即将退出时执行该方法
- (void)applicationWillTerminate:(UIApplication *)application{
NSLog(@"*****%s",__func__);
}
文/ly渐行渐远(简书作者)
原文链接:http://www.jianshu.com/p/53449d8277c4
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
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函数时做了跳转,转到了AppDelete中。应用程序代理,主要检测应用程序的状态并做出相应的处理。应用程序的状态有很多,比如:程序启动、进入活跃状态、进到后台、内存警告、收到远程消息等等。任何接受了UIApplicationDelegate协议的对象都可以成为应用程序代理。一旦应用程序的某种状态触发,就会执行相应的代理方法。UIApplicationDelegate是一个OC的协议。里面声明了一堆方法,这些方法都与应用程序运行状态有关,它们由应用程序代理实现。UIApplication对象负责调用。
application:didFinishLaunchingWithOptions:告诉delegate程序启动即将完成,程序准备要运行。(delegate实现这个方法时,要创建window对象,将程序内容通过window呈现给用户。),在该方法中为我们应用程序创建window等必要的界面
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];//初始化window
self.window.backgroundColor = [UIColor grayColor];//设置window的背景色
[self.window makeKeyAndVisible];//把window设置为主视图
[self.window setRootViewController:[[UIViewController alloc] init]];//设置window的根视图控制器
return YES;
}
applicationWillResignActive:程序即将结束活跃状态,(例如:突然来电话,短信,下来菜单栏等)就会执行该方法,一般在该方法中做一些必要信息的存储,和一些暂停动作。例如,游戏正在进行时,要暂停游戏
- (void)applicationWillResignActive:(UIApplication *)application {
NSLog(@"*****%s",__func__);//__func__打印方法名
}
applicationDidEnterBackground:程序已经进入后台,如果程序长期在后台呆着,有可能会退出,所以在该方法中要进行一些重要数据的持久化。(按Home键)
- (void)applicationDidEnterBackground:(UIApplication *)application {
NSLog(@"*****%s",__func__);
}
applicationWillEnterForeground:程序即将进入前台,一般式在程序由后台进入该程序的时候执行该方法
- (void)applicationWillEnterForeground:(UIApplication *)application {
NSLog(@"*****%s",__func__);
}
applicationDidBecomeActive:告诉delegate应用程序已经进入活跃状态(重新执行被暂停的任务),程序启动或者由后台进入前台都会执行该方法
- (void)applicationDidBecomeActive:(UIApplication *)application
{
NSLog(@"*****%s",__func__);
}
applicationWillTerminate:即将退出时执行该方法
- (void)applicationWillTerminate:(UIApplication *)application{
NSLog(@"*****%s",__func__);
}
文/ly渐行渐远(简书作者)
原文链接:http://www.jianshu.com/p/53449d8277c4
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询