如何在 Swift 中获取应用委托的引用?


在了解如何获取应用委托的引用之前,您应该了解 Swift 中的应用委托是什么。

应用委托

在 iOS 应用中,应用委托是应用的入口点。在整个应用生命周期中,iOS 只创建此对象一次,并且可以以共享模式访问。它负责处理与应用生命周期相关的关键事件和任务,例如响应系统通知和管理应用的窗口和视图层次结构。

在哪里定义?

应用委托类通常在 Xcode 项目的 AppDelegate.swift 文件中定义。它应该符合 UIApplicationDelegate 协议,并包含允许它处理与应用生命周期相关的关键事件和任务的方法。

委托方法是什么?

例如,当应用完成启动时,会调用 application(_:didFinishLaunchingWithOptions:) 方法,当应用即将从活动状态变为非活动状态时(例如,当接收到电话或短信时),会调用 applicationWillResignActive(_:) 方法。

UIApplicationDelegate 协议

您可以覆盖 UIApplicationDelegate 协议的这些和其他方法来自定义应用委托的行为。例如,您可以使用应用委托创建应用的窗口并设置初始视图层次结构。您还可以使用它通过显示或隐藏某些视图来响应应用状态的变化。

要在 Swift 中获取应用委托的引用,您可以使用 UIApplication.shared 单例实例来访问应用委托。以下是如何执行此操作的示例

let appDelegate = UIApplication.shared.delegate as! AppDelegate

使用以上代码,您可以访问应用委托的引用。请确保您正在使用强制解包来获取引用,这并不推荐。

使用可选绑定获取引用

if let appDelegate = UIApplication.shared.delegate as? AppDelegate { // Use the appDelegate object to access the properties and methods of the app delegate. }

什么是 UIApplication?

UIApplication 是 UIKit 框架中的一个类,它为 iOS 应用提供了一个中央控制点。它负责处理与应用生命周期相关的关键事件和任务。这包括响应系统通知、管理应用的窗口和视图层次结构以及管理应用的运行循环。

现在您已获得应用委托的引用,您可以使用它来访问应用委托的属性和方法。

例如,您可以使用它来访问应用委托的 window 属性,如下所示

if let appDelegate = UIApplication.shared.delegate as? AppDelegate { if let window = appDelegate.window { print("Window Frame:", window.frame) } }

输出

Window Frame: (0.0, 0.0, 393.0, 852.0)

结论

应用委托是一个特殊的对象,充当应用的入口点。每当您想要访问 AppDelegate 类的属性和方法时,都需要 AppDelegate 类的引用。

更新于: 2023年1月2日

3K+ 浏览量

开启您的 职业生涯

通过完成课程获得认证

立即开始
广告