-
今天写了一下Swift4.0, 突然发现原来GCD的API都不能用了, 谷歌之后才发现, 苹果将GCD的API统统改了一遍, 原来OC风格的API都变成了下面这个样子
-
新的API都是以
DispatchQueue
开头的各种方法, 主线程就是DispatchQueue.main
, 子线程就是DispatchQueue.global()
func loadData(completion: @escaping (_ jsonData: String) -> ()) { DispatchQueue.global().async { print("发送异步请求: \(Thread.current)") DispatchQueue.main.sync { print("请求完毕, 回到主线程: \(Thread.current)") // 闭包如果要交给方法调用者来传入代码 // 则需要在参数声明闭包的时候声明该闭包为逃逸闭包 completion("123"); } } DispatchQueue(label: "first").async { print("发送异步请求: \(Thread.current)") DispatchQueue.main.sync { print("请求完毕, 回到主线程: \(Thread.current)") completion("123"); } } }
网友评论