發表文章

目前顯示的是 10月, 2018的文章

iOS _ 閉包 ( Closures )

圖片
Closures 的學習筆記 Closures 和 Function 的功能很相似,而從 Closures 就像似一個沒有名稱的 Function, 所以 Closures 可以定義一段程式碼,也可以接受參數和回傳資料。 然而以下是兩者之間的差異! 首先在 Apple Closures的語法是 { ( parameters ) -> ( return type)  in   ( statements ) } 從兩者的格式來看就能更清楚, Function func 方法名 (參數一,餐數二) -> 回傳值 {    程式碼區域  } Closures { (參數一, 參數二) -> 回傳值 in  程式碼區域 } 從這兩個格式來看, Function 把前面的方法名稱拿掉, 然後把參數和回傳型別拿到大括弧內 但 Closures 沒辦法像 Function 可以單獨定義, 因此必須指派為 變數 或是 常數 或 當作參數傳入 Function ( 將 Closures 指派為常數 ) ( 將 Closures 指派當做參數傳入 Function ,而這個也是最常看到的用法) 通常如果沒有重覆需要呼叫需求時 就 closures 來處理, 在執行方法後要立即執行其他事情時使用, ( 例如 網路下載資料後,去更新呈現的畫面內容 ) 以上是基本的 Closures 的 基本寫法。 接下來是 Closures 的簡寫,這個也是常常每個不同專案較長看到的。 當 Closures 是 Function 的最後一個參數的時候, 可以 移除 Function 中 Closures 的『 參數 』和『 冒號 』, 然後最後的『 小括號 』 移到前面 。 如同上面的是 簡寫 過的方式 birthday(month: 3, day: 1 ) { ( ) -> String in    return " Happy Birthday " } 原版本是 birthday(month:

iOS 生命週期 ( iOS ViewController Life )

生命週期主要是以下幾個: viewDidLoad :  view被載入記憶體時候,但畫面未被顯示之前,就會呼叫viewDidLoad 這時候我們會在這個時候 override 方法來增加對 view 的初始化。 viewWillAppear: 這個方法是當在 view 將呈現在畫面,且還沒有任何動畫呈現在畫面上的時候被呼叫。 可透過 overriding 這個方法來執行與 view 關聯的自定義任務。 ( 例如: 透過這個 viewWillAppear 把 status bar 樣式方向或樣式改變,改變 status bar 將在 view 呈現的樣式) viewDidAppear: 這個是在viewWillAppear 後,即 view  載入 view controller 後,就會載入這個方法。 可以透過 overriding 這個方法來增加任務到已呈現的 view   viewWillDisappear: 當 view 被移除前,且動畫開始執行前所呼叫的。 這時候可以透過 overriding 這個方法來改變 view 的各種狀態。 (例如: 可以把改變的 status  bar 改回原來) viewDidDisappear: 當 view 被移除後。