您可以使用URL
, URLRequest
and URLSession
or NSURLConnection
就像您通常在 Objective-C 中所做的那样。请注意,对于 iOS 7.0 及更高版本,URLSession
是优选的。
Using URLSession
初始化一个URL
对象和一个URLSessionDataTask
from URLSession
。然后运行任务resume()
.
let url = URL(string: "http://www.stackoverflow.com")!
let task = URLSession.shared.dataTask(with: url) {(data, response, error) in
guard let data = data else { return }
print(String(data: data, encoding: .utf8)!)
}
task.resume()
Using NSURLConnection
首先,初始化一个URL
and a URLRequest
:
let url = URL(string: "http://www.stackoverflow.com")!
var request = URLRequest(url: url)
request.httpMethod = "POST"
然后,您可以使用以下方法异步加载请求:
NSURLConnection.sendAsynchronousRequest(request, queue: OperationQueue.main) {(response, data, error) in
guard let data = data else { return }
print(String(data: data, encoding: .utf8)!)
}
或者你可以初始化一个NSURLConnection
:
let connection = NSURLConnection(request: request, delegate:nil, startImmediately: true)
只需确保将您的委托设置为除nil
并使用委托方法来处理收到的响应和数据。
有关更多详细信息,请检查的文档NSURLConnectionDataDelegate协议
在 Xcode Playground 上进行测试
如果您想在 Xcode Playground 上尝试此代码,请添加import PlaygroundSupport
到你的游乐场,以及以下调用:
PlaygroundPage.current.needsIndefiniteExecution = true
这将允许您在 Playground 中使用异步代码。