|
|
@@ -45,7 +45,7 @@ class SessionDelegate: NSObject {
|
|
|
|
|
|
private var tasks: [URL: SessionDataTask] = [:]
|
|
|
private let lock = NSLock()
|
|
|
- public var extraHandler: URLSessionDataDelegate?
|
|
|
+ private weak var extraHandler: URLSessionDataDelegate?
|
|
|
|
|
|
let onValidStatusCode = Delegate<Int, Bool>()
|
|
|
let onDownloadingFinished = Delegate<(URL, Result<URLResponse, KingfisherError>), Void>()
|
|
|
@@ -146,6 +146,15 @@ class SessionDelegate: NSObject {
|
|
|
lock.unlock()
|
|
|
task?.forceCancel()
|
|
|
}
|
|
|
+
|
|
|
+ /// You could set the extra handler before a downloading task starts.
|
|
|
+ func setExtraHandler(_ handler: URLSessionDataDelegate?) {
|
|
|
+ extraHandler = handler
|
|
|
+ }
|
|
|
+ func getExtraHandler() -> URLSessionDataDelegate? {
|
|
|
+ return extraHandler
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
|
|
|
extension SessionDelegate: URLSessionDataDelegate {
|