我在检测何时使用 NSURLSession 接收数据时遇到问题。NSURLConnection 的等效代码确实有效,但这里不包括在内。
在此示例中,我正在向 google.com 发出请求。completionHandler 工作并打印“完成”(如果您更改代码,还有数据等)。
但是 didReceiveData 没有被触发,并且“接收到的数据”永远不会被打印出来。
我浏览了文档并进行了大量搜索,我认为这看起来不错,但我似乎无法让它发挥作用。绝对会感谢任何帮助。
(我需要使用 didReceiveData 因为我要解析流式 json api。)
谢谢!
import UIKit
class ViewController: UIViewController, NSURLSessionDelegate, NSURLSessionDataDelegate, NSURLSessionTaskDelegate {
override func viewDidAppear(animated: Bool) {
let session = NSURLSession.sharedSession()
var task = session.dataTaskWithURL(NSURL(string: "https://google.com")!, completionHandler: { (data, response, error) -> Void in
print("complete")
})
task.resume()
}
func URLSession(session: NSURLSession, dataTask: NSURLSessionDataTask, didReceiveData data: NSData) {
print("received data")
}
}