为了从我的视图控制器完全呈现我的视图,我需要从网络请求中获得响应。
我一直在尝试以多种不同的方式做到这一点,但每次都没有成功。
最初,我通过在调用任何方法来呈现视图之前发出“同步”网络请求来使其工作。但是,编译器警告我,从 ios 8 开始不推荐使用同步网络请求。
以最高效的方式完成此任务的最佳方法是什么?
我努力了:
override func loadView() {
dispatch_sync(dispatch_get_main_queue()){
// GET the Markup
let url = NSURL(string: self.PageURL)
let request = NSURLRequest(URL: url!)
let session = NSURLSession(configuration: NSURLSessionConfiguration.defaultSessionConfiguration())
let RequiredViewData = session.dataTaskWithRequest(request) {(data, response, error) in
do {
let json = try NSJSONSerialization.JSONObjectWithData(data!, options: .AllowFragments)
self.RequiredViewJSON = json
self.view = UIView(frame: UIScreen.mainScreen().bounds)
print(data)
} catch {
print("error serializing JSON: \(error)")
}
}
RequiredViewData.resume()
}
}
但这只会使我的应用程序呈现为空白屏幕。
基本上我需要完成的是:在任何视图渲染发生之前发出网络请求并接收响应。
提前致谢!