Swift 3.0 Class Note – iOS Application Life Cycle & Memory Management

Presenter : Wei Wei

Application Life Cycle

  • @UIApplicationMain是一個函式,生成UIApplication物件
  • UIApplication 負責初始化並顯示UIWindow,並負責載入應用程式的第一個UIViewUIWindow表單中
  • UIApplication 的另一個任務是説明管理應用程式的生命週期,而UIApplication通過 UIApplicationDelegate的代理來履行任務
  • UIApplication會負責接收事件,而 UIApplicationDelegate則決定應用程式如何去回應這些事件,UIApplicationDelegate可以處理的事件包括應用程式的生命週期事件(比如程式啟動和關閉)、系統事件(比如來電、記事項警告)
  • info.plist告訴@UIApplicationMain要用哪個storyboard

%e8%9e%a2%e5%b9%95%e5%bf%ab%e7%85%a7-2016-09-26-%e4%b8%8b%e5%8d%887-29-21

  • Application Life Cycle (APP層次)
  • View Life Cycle (APP層次下的View Controller層次)
  • 用print的方式在模擬器下觀察變化

Memory Management(ARC)

  • class有屬性就一定要給初始值,有初始值就不用寫init(程式會偷偷幫你寫)

  • 生成實體前只有藍圖,不佔記憶體
  • 有實體才會開始:1. 啟動記憶體 2. 執行init

  • Reference Type & Value Type
  • Retain Cycle : 用弱連結解決(weak) or 無主參考(unowned)

%e8%9e%a2%e5%b9%95%e5%bf%ab%e7%85%a7-2016-09-26-%e4%b8%8b%e5%8d%885-15-06

source : http://blog.appformation.pl/retain-cycles-the-hidden-trap-of-arc-part-3/

reference : https://tommy60703.gitbooks.io/swift-language-traditional-chinese/content/chapter2/16_Automatic_Reference_Counting.html

Others

  • 跨平台:Corona SDK + Lua
廣告

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s