NSURLSession を使用してデータが受信されているときの検出に問題があります。NSURLConnection を使用した同等のコードは機能しますが、ここには含まれていません。
この例では、google.com にリクエストを送信しています。completionHandler が機能し、「完了」が出力されます (コードを変更した場合はデータなども)。
ただし、 didReceiveData はトリガーされず、「受信データ」は出力されません。
私はドキュメントを調べて大量の検索を行ってきましたが、これは正しいように見えますが、動作させることができないようです. これについての助けをいただければ幸いです。
(ストリーミング json API を解析するので、didReceiveData を使用する必要があります。)
ありがとう!
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")
}
}