Sky*_*ker 3 asynchronous httprequest ios swift swift2
我正在慢慢地学习,主要是通过谷歌搜索问题,因为我遇到它们.
从在线研究中我发现了一条规则:
**
**
但是人们在网上提出请求的方式有很多种,这让人很困惑,弄清楚哪一个是正确的.而且由于Apple最近发布了Swift 2,很少有方法被弃用.这意味着网上的大多数示例或答案也已被弃用.
目前我使用以下代码发出请求.我不知道这是否是提出请求的正确方法,或者这是否是异步的.
let request = NSMutableURLRequest(URL: NSURL(string: "www.domain.com")!)
let session = NSURLSession.sharedSession()
request.HTTPMethod = "GET"
UIApplication.sharedApplication().networkActivityIndicatorVisible = true
let _: NSError?
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.addValue("application/json", forHTTPHeaderField: "Accept")
let task = session.dataTaskWithRequest(request, completionHandler: {data, response, err -> Void in
UIApplication.sharedApplication().networkActivityIndicatorVisible = true
print("Response: \(response)")
let strData = NSString(data: data!, encoding: NSUTF8StringEncoding)
print("Body: \(strData)")
do {
self.json = try NSJSONSerialization.JSONObjectWithData(data!, options: .MutableLeaves) as? NSArray
} catch {
}
})
task.resume()
Run Code Online (Sandbox Code Playgroud)
我对这篇文章的问题如下:
如果您可以提供一些非常有用的示例代码.
Ps(我在网上搜索了几个小时后在这里发帖,我已经阅读了很多关于堆栈溢出的帖子,所以我谦虚地请求请不要发布链接到其他堆栈溢出帖子作为答案,发布为评论)
谢谢.
为什么异步请求更好?
在通过网络发生(可能非常耗时)请求和回复时,不会阻止接口.阻止界面是不好的,如果这样做太久,系统会在用户眼前杀死你的应用程序.
在Swift 2中进行异步请求涉及哪些步骤?
使用NSURLSession.您的代码中的此调用是异步的,因为您正在使用NSURLSession:
let task = session.dataTaskWithRequest(request, completionHandler:{
data, response, err -> Void in
// this code runs asynchronously...
// ... i.e. later, after the request has completed (or failed)
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5704 次 |
| 最近记录: |