UIApplication

UIApplication类提供了一个集中的控制点和协调在iOS应用程序运行。 UIApplication每个应用程序只有一个实例(或者很少,UIApplication的子类)。 当应用程序启动时,系统调用UIApplicationMain函数;在其他任务,这UIApplication函数创建一个单例对象。 此后您访问对象通过调用sharedApplication类方法。

概述

你的应用的一个主要角色的应用程序对象是处理传入的用户的初始路由事件。 它派遣行动消息转发到它被控制对象(UIControl类的实例)适当的目标对象。 应用程序对象维护一个打开的窗口的列表(ui窗口对象),通过这些可以检索应用程序的任何UIView对象。

UIApplication类定义一个委托符合UIApplicationDelegate协议,必须实现协议的一些方法。 重要的运行时的应用程序对象通知委托通知——比如,应用程序启动,低内存警告,并适当地应用termination-giving回应的机会。

应用程序可以合作处理资源,如电子邮件或一个图像文件,通过openURL:方法。 例如,一个应用程序调用这个方法与电子邮件网址导致邮件应用程序启动并显示消息。

这个类允许您管理的api特定于设备的行为。UIApplication使用对象来执行以下操作:

  • 暂停的触摸事件(beginIgnoringInteractionEvents)
  • 注册远程通知(unregisterForRemoteNotifications)
  • 触发undo-redo UI(applicationSupportsShakeToEdit)
  • 确定是否有一个安装程序注册处理URL方案(canOpenURL:)
  • 扩展应用程序的执行,以便它可以在后台完成一个任务(beginBackgroundTaskWithExpirationHandler:beginBackgroundTaskWithName:expirationHandler:)
  • 时间表和取消当地通知(scheduleLocalNotification:cancelLocalNotification:)
  • 协调遥控接收事件(beginReceivingRemoteControlEvents endReceivingRemoteControlEvents)
  • 执行app-level状态恢复任务(方法管理状态恢复行为任务组)

子类化的笔记

大多数应用程序并不需要UIApplication子类。相反,使用一个应用程序委托来管理系统和应用程序之间的交互。

如果你的应用程序必须处理传入的事件之前的系统是非常罕见的情况可以实现一个定制的事件或操作调度机制。 要做到这一点,子类UIApplication和覆盖sendEvent:和\/或sendAction:::forEvent:方法。 对于每一个事件你拦截,派遣回系统通过调用(超级sendEvent:事件)处理后的事件。 很少需要拦截事件,如果可能的话你应该避免它。

results matching ""

    No results matching ""