デリゲートメソッドは、期待どおりに呼び出されるようになりました。この解決策は、完全一致を確実にするために、URLSessionDataDelegate
とURLSessionTaskDelegate
のコードベースからのメソッドシグネチャのコピーにありました。デバイスのログ出力(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?) {
// ...
}