如何在 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+ 瀏覽量

開啟您的 職業生涯

透過完成課程獲得認證

立即開始
廣告

© . All rights reserved.