Swift3.0通過閉包回撥傳遞引數 / @escaping
阿新 • • 發佈:2019-02-02
//載入請求資料
func loadData(completion: @escaping (_ result:[String]) -> ()) -> () {
DispatchQueue.global().async {
print("耗時操作 \(Thread.current)")
//獲取到的json結果資料
let json = ["姓名","年齡","愛好"]
//主佇列回撥
DispatchQueue.main.async {
print("主執行緒更新 UI \(Thread.current)" )
//回撥非同步獲取的結果
completion(json)
}
}
}
//呼叫:
//尾隨閉包,
//如果函式的最後一個引數是閉包,函式引數可以提前結束,最後一個引數直接使用{},包裝閉包的程式碼
loadData { (result) in
print("獲取結果 \(result)")
}
//按照函式本身的格式編寫
loadData(completion: { (result) -> () in
print("獲取結果 \(result)")
})