发布于 2年前

Swift 3从异步调用返回数据

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

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)")     
    }
}
©2020 edoou.com   京ICP备16001874号-3