ios-初识swift(三)
本次要写的是有关于闭包的简单用法以及swift 4.0的模拟异步加载网络数据,完成回调
闭包(一切理解皆在代码中)
//闭包
func closer(){
/**
1.闭包的所有代码【参数 返回值 执行代码】都放在{}中
2.in 是用来区分函数定义和执行代码
*/
let sumFunc = {
(x:Int,y:Int) -> Int
in
return x+y
}
print(sumFunc(23,23))
//简单闭包,无参数无返回值
let simpleCloser={
print("hello")
}
simpleCloser()
}
异步加载网络数据,完成回调
先写主函数的调用方法:
//尾随闭包
loadData { (html) in
print("完成回调\(html)")
}
再写主方法:
//异步加载网络数据,完成回调
func loadData(finished:@escaping (_ html:String) -> ()){
DispatchQueue.global().async {
print("耗时操作\(Thread.current)")
//通常加载数据
//异步完成之后,通过block回调
DispatchQueue.main.async(execute:{
print("更新UI的线程\(Thread.current)")
finished("<html></html>")
})
}
}