1

wwdc viedo [[nsurlsession によるネットワーク化]] では、NSURLSession は HTTP/2 プロトコルを自動的にサポートすると述べています。

しかし、このコードを使用すると、

 let sessionConfig = NSURLSessionConfiguration.defaultSessionConfiguration()
 let session = NSURLSession(configuration: sessionConfig)
 let url = NSURL(string: "https://www.google.com.hk")
 let task = session.dataTaskWithURL(url) {
     (data: NSData?, response: NSURLResponse?, error: NSError?) in
     ...
 }
 task?.resume()

HTTP/2 は使用しません。

しかし、このコードでは大丈夫です

let session = NSURLSession.sharedSession() 
let url = NSURL(string: "https://www.google.com.hk")
let task = session.dataTaskWithURL(url) {
     (data: NSData?, response: NSURLResponse?, error: NSError?) in
    ...
}
task?.resume() 

ネットワークは問題ありません。http/2 を使用しています

理由を知っている人はいますか?

4

1 に答える 1

0

バグを報告します。デフォルトのセッション構成で作成されたセッションは、共有セッションと同じように動作する必要があります。

もちろん、そのスニペットの周りのコードはセッションへの強力な参照を維持しており、セッションが消えてタスクが終了する前にその構成が nil になるという奇妙なエッジケースのバグは見られないと仮定しています。 .

于 2015-09-15T06:19:46.140 に答える