我有一个小问题。我希望有这样的功能:
func performGetRequest(targetURL: NSURL!, completion: (data: NSData?, HTTPStatusCode: Int, error: NSError?) -> Void) {
let request = NSMutableURLRequest(URL: targetURL)
request.HTTPMethod = "GET"
let sessionConfiguration = NSURLSessionConfiguration.defaultSessionConfiguration()
let session = NSURLSession(configuration: sessionConfiguration)
let task = session.dataTaskWithRequest(request, completionHandler: { (data: NSData?, response: NSURLResponse?, error: NSError?) -> Void in
dispatch_async(dispatch_get_main_queue(), { () -> Void in
completion(data: data, HTTPStatusCode: (response as! NSHTTPURLResponse).statusCode, error: error)
})
})
task.resume()
}
我在appcoda.com找到了,但是在加载数据并完成解析时可以选择执行某些操作。类似的东西:
UIView.animateWithDuration(3.0, delay: 0, options: .CurveEaseIn, animations: { () -> Void in
}, completion: {finished in
self.functionXY()
})
我的完整计划是从两个特定页面加载json数据,第二个json链接是从第一个json的数据生成的。所以我在第一个完成后启动http请求是什么。 当第二个完成后,我想调用一个函数将我的视图从加载屏幕更改为mainView。
答案 0 :(得分:0)
您只需在performGetRequest:
func aFunction() {
performGetRequest(yourURL) { (data, HTTPStatusCode, error) in
if error == nil {
self.animate()
}
}
}
func animate() {
UIView.animateWithDuration(3.0, delay: 0, options: .CurveEaseIn, animations: { () -> Void in
}, completion: {finished in
self.functionXY()
})
答案 1 :(得分:-1)
您可以依赖 Alamofire 或其他http / post-request开源库,而不是简单的请求。
否则,您可以使用 NSURLSessionDataTask / NSURLSessionDownloadTask 和相应的完成处理程序
希望这可能会有所帮助