【发布时间】:2017-12-29 09:51:17
【问题描述】:
我正在尝试使用在 Xcode 游乐场文件中工作的一段代码从本地服务器获取一些数据:
URLSession.shared.dataTask(with: url!, completionHandler: {(data, response, error) -> Void in
if let jsonObj = try? JSONSerialization.jsonObject(with: data!, options: .allowFragments) as? NSDictionary {
friend_ids = (jsonObj!.value(forKey: "friends") as? NSArray)!
}
}).resume()
return friend_ids
在阅读了有关此主题的一些类似问题后,我知道 URLSession 是异步运行的,因此该函数在从服务器获取任何数据之前返回 nil 值。我还认为我理解完成处理程序可用于确保在继续之前实际获取数据,但不幸的是我并不能真正理解如何实现一个。是否有人可以向我展示如何在这个简单的示例中使用完成处理程序,以确保在返回变量之前从服务器获取?
谢谢!
【问题讨论】:
标签: swift completionhandler urlsession