Swift 3从异步调用返回数据

时间:2022-06-01 12:45:15

是不能直接在异步调用返回数据,一种替代的方案是向异步调用的函数里传入回调函数,当异步任务完成后,使用回调函数处理结果。

Swift 3示例:

class func getData(completionHandler: @escaping (data: NSArray) -> ()) {
...
let task = session.dataTask(with:url) {
data, response, error in
...
resultsArray = results
completionHandler(data: resultsArray)
}
...
task.resume()
}

使用:

override func viewDidLoad() {
User.getData {
data in
println("View Controller: \(data)")
}
}