iOS开发之程序的启动

当我们启动某个应用之后(比如点击应用图标),我们就可以在程序中进行各种交互;当我们退出应用的之后(比如点击home键),我们就不能再跟它进行任何交互。这个过程就体现了一个程序的生命周期。

一. 名词解释

  1. UIApplication
    程序启动之后创建的第一个对象就是application对象,而且这是一个单例对象,有且只有一个,也不允许我们在程序中另行创建。我们可以通过它进行一些应用级别的设置。
  2. APPDelegate
    它是UIApplication的代理,默认遵守UIApplicationDelegate协议,并实现它的代理方法,来处理一系列的系统事件,比如程序启动,进入前台,进入后台,程序退出等。
/**
 *  程序启动完成
 */
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    return YES;
}
/**
 *  程序将要进入后台
 */
- (void)applicationWillResignActive:(UIApplication *)application {
}
 
/**
 *  程序进入后台
 */
- (void)applicationDidEnterBackground:(UIApplication *)application {
 
}
 
/**
 *  程序将要进入前台
 */
- (void)applicationWillEnterForeground:(UIApplication *)application {
   
}
 
/**
 *  程序进入前台
 */
- (void)applicationDidBecomeActive:(UIApplication *)application {
    
}
 
/**
 *  程序退出
 */
- (void)applicationWillTerminate:(UIApplication *)application {
    
}

二. 启动流程

  1. 第一步:程序入口main.m
/**
 *  @param argc   系统参数
 *  @param argv   系统参数
 *  @param nil    应用程序名称
 *  @param class] 应用程序代理名称
 */
int main(int argc, char * argv[]) {
    @autoreleasepool {
        return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
    }
}

总结UIApplicationMain函数作用:
argc:系统或者用户传入的参数
argv:系统或用户传入的实际参数 
1.根据传入的第三个参数,创建UIApplication对象
2.根据传入的第四个产生创建UIApplication对象的代理
3.设置刚刚创建出来的代理对象为UIApplication的代理
4.开启一个事件循环(可以理解为里面是一个死循环)这个时间循环是一个队列(先进先出)先添加进去的先处理
5.加载Info.plist文件,看是否指定了main.storyboard,如果设置了就去加载main.storyboard
  1. 第二步:加载Info.plist文件,初始化window
    看是否指定了main.storyboard,如果设置了就去加载main.storyboard;没有的话就需要手动创建。
  2. 初始化视图控制器
    在appdelegate中执行代理方法:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    return YES;
}
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 1024 设计师: 上身试试
应支付0元
点击重新获取
扫码支付

支付成功即可阅读