如何在 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 類的引用。
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP