APP启动原理

2017-05-06  本文已影响54人  指尖书法

UIApplication相关

一、 什么是UIApplication?

注意:UIApplication不能手动创建,不能alloc init,一个应用程序只允许 一个。 为什么要弄成单例,UIApplication对象是用来设置应用全局信息的,一个应用程序如果有很多UIApplication对象,都不知道听谁的。

验证:单例和不能alloc,init

二、 UIApplication的作用:做应用级别的操作

  1. 设置应用图标右上角的数字,图标需要手动清除
    applicationIconBadgeNumber

三、URL:一个资源的唯一路径

  1. 网络资源URL的组成==协议头://主机域名/路径 http://www.baidu.com/abc/1.png

四、 UIApplication管理状态栏

  1. ios7默认交给控制器,需要配置下,不交给控制器管理,就会交个 UIApplication管理。

UIApplication的Delegate

一、 AppDelegate的作用

• 为什么要搞个AppDelegate,代理设计模式,有些事情自己不想处理,交
给别人处理
• 怎么成为UIApplication的代理,遵守协议。

二、 在哪设置UIApplication的代理,需要了解ios程序的启动过程.

  1. 创建application,创建并且设置application的代理

三 UIApplicationMain函数

  1. 注意UIApplicationMain函数会开启一个事件循环,并不会马上就执行完
    毕。
  2. 底层做的事情,创建UIApplication对象和UIApplicationDelegate对象,设置
    UIApplication的代理,开启事件循环,监听系统事件。

UIWindow

一、 什么是UIWindow?

详情查看官方文档解释.

二、 之前都没有创建UIWindow,怎么显示界面的。

根据Info.plist获得最主要storyboard的文件名,加载最主要的storyboard(有storyboard)

  1. 创建UIWindow

三、演示手动创建UIWindow?空项目演示UIWindow的创建过程。

  1. 在程序启动完的方法里创建,并且给appDelegate的window赋值

四、 addSubView和rootViewController的区别

  1. 直接用addSubView,控制器会被释放,控制器就不能处理事件

五、 UIWindow补充

  1. 自己创建窗口,窗口显示出来,两个条件。
    makeKeyAndVisible
  2. 窗口不要被释放
上一篇 下一篇

猜你喜欢

热点阅读