iOS精选iOS面试-底层

UIApplication

2017-07-31  本文已影响137人  Natus_Vincere
iOS中运行的应用程序的集中控制和协调点.

概述

每个iOS应用程序都只有一个 UIApplication 的实例 (少部分是 UIApplication 的子类).启动应用时,系统调用 UIApplicationMain 函数; 在其他任务中,此函数创建一个 Singleton UIApplication 对象(单例). 在此之后可以通过 sharedApplication 类方法调用访问.

application 对象的主要作用是处理初始化传入的用户事件进程(原文 : A major role of your app's application object is to handle the initial routing of incoming user events.). 它调度由控制对象 (UIControl 的实例) 转发给它的动作消息(action message) 到适当的目标对象. application 对象维护一个打开的窗口列表 (UIWindow 对象),通过这些可以检索任何应用程序的 UIView 对象.

UIApplication 类定义了一个一个 delegate, 这个 delegate 遵循 UIApplicationDelegate 协议, 并且必须实现一些协议的方法. application 对象向 delegate 通知重要的 runtime 事件 --- 例如应用程序的启动, 低内存警告和应用程序终止 --- 使其有机会进行适当的响应.

应用程序可以通过 openUrl: 的方法协作处理资源, 如电子邮件或者图像文件. 使用邮件的 URL 会直接启动邮件 app 并且显示消息.

这个类中的一些 API 允许程序员对设备进行特殊的行为操作. 使用 UIApplication 的对象执行以下操作 :

子类注释(Subclassing Notes)

大多数的 app 不需要对 UIApplication 进行子类化. 相反, 使用 app delegate 来管理系统和应用程序间的交互.

如果 app 必须在系统执行之前处理传入事件 (这种情况很罕见),你可以自定义事件或者操作调度机制.为了做到这一点, 可以子类化 UIApplication 并覆盖 (Override) sendEvent: 和/或 sendAction:to:from:forEvent: 方法. 对于程序员拦截的每个事件, 在处理事件之后调用 [super sendEvent: event ] 将其发回系统. 拦截事件很少需要, 如果可能, 尽量避免这么做.

Topics


获取 app 实例 :

获取 app delegate :

获取 app windows :

控制和处理事件 :

打开 URL 资源 :

配置用户通知设置 :

- registerUserNotificationSettings: (iOS8 - iOS10) : 注册首选选项,通知用户.
- currentUserNotificationSettings (iOS8 - iOS10) : 返回 app 的用户通知设置.


注册远程通知 :

管理后台执行 :

管理应用程序空闲计时器 :

管理恢复状态行为 :

管理主屏幕的3D快捷操作 :

确定受保护内容的可用性 :

注册远程控制事件 :

控制 app 外观 :

管理应用程序的图标 :

获取字体大小的偏好 :

管理默认界面方向 :

管理状态栏方向 :
上一篇 下一篇

猜你喜欢

热点阅读