iT邦幫忙

2023 iThome 鐵人賽

DAY 6
0

既然我們建好了自己的第一個專案,那我們就要開始了解不同檔案在 APP 的生命週期各自負責哪些工作!主要分為兩個部分:AppDelegate 和 SceneDelegate。

AppDelegate - 負責 APP 的整個生命週期(life cycle)

https://ithelp.ithome.com.tw/upload/images/20230825/20161850g8gaRNeLeB.png

主要方法:

  • didfinishLaunchingWithOptions: APP 啟動時的入口,負責非 UI 的初始化工作,例如初始化數據庫和啟動必要服務。
  • configurationForConnecting: 新建場景(頁面)時調用,用於創建並配置新的場景。
  • didDiscardSceneSessions: 場景(頁面)關閉時調用,用於清理資源和狀態保存。

SceneDelegate - 負責 UI 的生命週期(life cycle)

https://ithelp.ithome.com.tw/upload/images/20230825/20161850zOxUnGOa1q.png

主要方法:

  • willConnectTo: 創建新的 UIWindow,設置 rootViewControllerscene,當場景(頁面)即將開始時調用。
  • sceneWillResignActive: 當場景(頁面)從活動狀態移動到非活動狀態時調用,例如收到來電。
  • sceneDidEnterBackground: 場景(頁面)進入背景時調用,適合保存數據和釋放資源。
  • sceneDidDisconnect: 場景(頁面)與 session 斷開連接時調用,適合釋放場景所占用的資源。
  • sceneWillEnterForeground : 是您應用程序即將重新出現在用戶面前的信號,您可以在此時準備界面。
  • sceneDidBecomeActive : 則是您的應用程序已經完全可用並可以與用戶互動的信號。

總結

  • AppDelegate 主要負責整個應用的生命週期管理,包括數據初始化和全局設置
  • SceneDelegate 則專注於用戶界面的生命週期,如窗口的創建和界面狀態的管理

了解這些將幫助您更好地控制和管理應用的行為和響應。這些知識對於構建穩定和高效的應用來說是基礎和必要的。不同的生命週期階段提供了機會讓您在正確的時機執行相應的操作,從而提供流暢和可靠的用戶體驗。


上一篇
【Day05】如何使用Xcode開發 (三)
下一篇
【Day07】如何拉取UI介面 (ㄧ) (以調色盤為例)
系列文
ios前端開發學習30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言