• 多控制器之UIApplication


    UIApplication

    简介

    • UIApplication对象是应用程序的象征
    • 每个应用都有自己的UIApplication对象,其是单例对象,通过[UIApplication sharedApplication]可以获得,不能用alloc来创建
    • 一个程序启动后创建的第一个对象就是UIApplication对象
    • 利用这个对象,可以进行一个应用级别的操作:
      • 显示程序图标右上角的红色提醒数字(ios8之后要先注册通知):applicationIconBadgeNumber(属性)
      • 显示联网指示器的可见性(ios7之后交给控制器管理,所以要设置):statusBarHidden(属性) 
      • 打电话:openURL(方法)
      • 发短信:openURL(方法)
      • 浏览网页:openURL(方法)
      • 等等
    • 注意:load类方法(不能访问属性):当类加载到内存中就调用,会比main方法调用还早

    代理delegate

    • app受到干扰会产生一系列琐事,这时UIApplication会通知它的代理对象来处理
    • 处理事件:

      // 应用程序启动完成的时候调用
      - (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 {
      }

    应用程序的启动原理

    int main(int argc, char * argv[]) {
        @autoreleasepool {
            // 第三个参数:设置UIApplication的对象的名称,只能它或者它子类,nil == @"UIApplication"
            // 第四个参数:创建代理对象,遵守了UIApplicationDelegate协议,把这个对象设为应用程序(UIApplication)的代理
            //           用NSStringFromClass:将一个类名转换成字符串---1.提示功能 2.避免输入错误
            return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
        }
    }
    // 程序的启动原理
    // 1.执行main -> UIApplicationMain
    // 2.创建UIApplication对象,并设置它的代理
    // 3.开启了一个事件循环(主运行循环)(死循环) -> 保证应用程序能一直运行
    // 4.应用程序加载Info.plist配置文件,判断该文件中是否有main值,如果有就会去加载Main.storyBoard,
         如果没有就执行didFinishLaunchingWithOptions:方法,应用程序启动完毕
  • 相关阅读:
    Java实现 蓝桥杯VIP 算法训练 传球游戏
    Java实现 蓝桥杯VIP 算法训练 Hanoi问题
    Java实现 蓝桥杯VIP 算法训练 蜜蜂飞舞
    Java实现 蓝桥杯VIP 算法训练 奇偶判断
    Java实现 蓝桥杯VIP 算法训练 传球游戏
    Java实现 蓝桥杯VIP 算法训练 Hanoi问题
    Java实现 蓝桥杯VIP 算法训练 Hanoi问题
    Java实现 蓝桥杯VIP 算法训练 蜜蜂飞舞
    Java实现 蓝桥杯VIP 算法训练 蜜蜂飞舞
    Qt: 访问容器(三种方法,加上for循环就四种了)good
  • 原文地址:https://www.cnblogs.com/LongLJ/p/5008419.html
Copyright © 2020-2023  润新知