2016-09-28 4 views
0

URLSessionDataTaskを作成して再開するには問題があります。セッション(およびタスク)のデリゲートの特定のメソッドへのその後の呼び出しを期待していますが、 。URLSessionのデバッグ(iOS 10)

URLSessionをこのような状況でデバッグするにはどうすればよいですか?たとえば、ログ出力をリクエストできますか? HTTPトラフィックを送信または受信するタイミングや、デリゲートでメソッドを呼び出そうとしたが、関連する実装を見つけることができない場合(実装のメソッドシグネチャがわずかにオフになるなど)

答えて

1

デリゲートメソッドは、期待どおりに呼び出されるようになりました。この解決策は、完全一致を確実にするために、URLSessionDataDelegateURLSessionTaskDelegateのコードベースからのメソッドシグネチャのコピーにありました。デバイスのログ出力(libsystem_network.dylib<Debug>と記されている行)も参考になりました。採用された方法のシグネチャは次のようになりました。

public func urlSession(_ session: URLSession, 
         task: URLSessionTask, 
         didReceive challenge: URLAuthenticationChallenge, 
         completionHandler: @escaping (URLSession.AuthChallengeDisposition, URLCredential?) -> Swift.Void) { 
    // ... 
} 

public func urlSession(_ session: URLSession, 
         dataTask: URLSessionDataTask, 
         didReceive data: Data) { 
    // ... 
} 

public func urlSession(_ session: URLSession, 
         task: URLSessionTask, 
         didCompleteWithError error: Error?) { 
    // ... 
}