為App 的主要入口點,Apple 會在一些應用程序級別的生命週期事件調用AppDelegate 的方法,其中有以下三種主要的方法:
func application(_:didFinishLaunchingWithOptions:) -> Bool
func application(_:configurationForConnecting:options:) -> UISceneConfiguration
func application(_:didDiscardSceneSessions:)
以下讓我們來依依介紹
func application(_:didFinishLaunchingWithOptions:) -> Bool
當應用程序啟動和應用程序設置完成時會調用此方法,在 iOS 13 以前,此方法用來創建和配置 UIWindow 物件並將 UIViewController 實例分配給窗口以使其顯示。但從 iOS 13 開始,如果您的應用程序有場景,則 AppDelegate 不再負責處理此問題,將移至 SceneDelegate 執行此動作
func application(_:configurationForConnecting:options:) -> UISceneConfiguration
當應用程序需要顯示新場景或窗口時,將調用此方法。 此方法不會在應用啟動時調用,僅在需要獲取新場景或新窗口時調用
func application(_:didDiscardSceneSessions:)
每當用戶丟棄場景時都會調用此方法,例如通過在多任務窗口中將其滑動或以編程方式執行此操作。
如果用戶執行此操作時您的應用程序未運行,則將在調用func application(_:didFinishLaunchingWithOptions:) -> Bool
後不久為每個丟棄的場景調用此方法
除了這些方法之外,AppDelegate 仍然可以處理 URL、緩存內存、應用程序終止、推送通知、位置服務等等。