iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 29
0
自我挑戰組

Hello Swift系列 第 29

29/30 命裡有時終須有

  • 分享至 

  • twitterImage
  •  

Life cycle of an App 生命週期

  1. 當使用者按下App Icon的「瞬間」,系統會先執行函式@UIApplicationMain,並產生元件UIApplication
  2. @UIApplicationMainUIApplication為了解決問題,會去訪問服從協定UIApplicationDelegate的物件。
  3. 所謂問題像是:
    application did finish launching 開始執行程式時要做什麼?
    application did enter background 離開程式時要做什麼?
    application did become active 重新開啟程式時要做什麼?
  4. App開啟時,@UIApplicationMain也會讀取info.plist檔案,用以確認Main.storyboardLaunchScreen的安排,並作出/啟動畫面。
  5. 同時也會產生物件UIWindowLaunch Screen→view fromViewController

理論如上,來看看AppDelegate.swift在做什麼吧
開始執行程式的地方

@UIApplicationMain

程式啟動後要做什麼事?

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool

app即將離開時執行的程式碼
Point:記錄使用者想保存的資訊,並於重新執行程式時顯示

func applicationWillResignActive(_ application: UIApplication) 

app進入背景時執行的程式碼

func applicationDidEnterBackground(_ application: UIApplication)

app即將顯示於螢幕前所執行的程式碼

func applicationWillEnterForeground(_ application: UIApplication)

app已執行後所執行的程式碼

func applicationDidBecomeActive(_ application: UIApplication)

app要被關閉時所執行的程式碼

func applicationWillTerminate(_ application: UIApplication)

上一篇
28/30 I服了U-2
下一篇
30/30 命裡無時莫強求
系列文
Hello Swift30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言