我们经常会遇到这样的需求:需要拿到网络请求完成后的值来判断或者计算一些事情。但是网络请求又是异步的,所以这个时候我们就可以借助闭包这个概念来解决这个问题。
申明函数:
//finished: (参数)->(返回值)
func loadData(finished: (_ str:String)->(),failed: ()->()) {
let a = arc4random()%4
if(a == 1){
finished(String(a))
}else{
failed()
}
}
调用:
loadData(finished: { (str) in
print("值\(str)")
}) {
print("不是1")
}