zoukankan      html  css  js  c++  java
  • 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(代理协议)

  • 相关阅读:
    Linux下删除某些非法字符文件名的文件
    华为面经之我的同学是个死神
    算法面经之华为
    【剑指offer】两个链表的第一个公共结点
    算法面经之百度
    【剑指offer】丑数
    【剑指offer】把数组排成最小的数
    【深度学习最优化方法】
    【矩阵范数与秩、正定】
    算法面经之大华+顺丰+爱奇艺
  • 原文地址:https://www.cnblogs.com/wohaoxue/p/4821243.html
Copyright © 2011-2022 走看看