func customHTTPProtocol(_ proto: CustomHTTPProtocol, didFailWithError error: Error)
}
-fileprivate final class ThreadOperator: NSObject {
+private final class ThreadOperator: NSObject {
private let thread: Thread
private let modes: [String]
self.operation = nil
}
- func operate() {
+ @objc func operate() {
operation?()
}
final class CustomHTTPProtocol: URLProtocol {
- fileprivate static let requestProperty = "com.masakih.KCD.requestProperty"
+ private static let requestProperty = "com.masakih.KCD.requestProperty"
static var classDelegate: CustomHTTPProtocolDelegate?
class func clearCache() { URLCache.kcd.removeAllCachedResponses() }
return request
}
- fileprivate var delegate: CustomHTTPProtocolDelegate? { return CustomHTTPProtocol.classDelegate }
+ private var delegate: CustomHTTPProtocolDelegate? { return CustomHTTPProtocol.classDelegate }
- fileprivate var session: URLSession?
- fileprivate var dataTask: URLSessionDataTask?
- fileprivate var cachePolicy: URLCache.StoragePolicy = .notAllowed
- fileprivate var data: Data = Data()
- fileprivate var didRetry: Bool = false
- fileprivate var didRecieveData: Bool = false
+ private var session: URLSession?
+ private var dataTask: URLSessionDataTask?
+ private var cachePolicy: URLCache.StoragePolicy = .notAllowed
+ private var data: Data = Data()
+ private var didRetry: Bool = false
+ private var didRecieveData: Bool = false
- fileprivate var threadOperator: ThreadOperator?
+ private var threadOperator: ThreadOperator?
private func use(_ cache: CachedURLResponse) {
override func startLoading() {
- guard let newRequest = (request as NSObject).mutableCopy() as? NSMutableURLRequest
- else { fatalError("Can not convert to NSMutableURLRequest") }
+ guard let newRequest = (request as NSObject).mutableCopy() as? NSMutableURLRequest else {
+
+ fatalError("Can not convert to NSMutableURLRequest")
+ }
URLProtocol.setProperty(true,
forKey: CustomHTTPProtocol.requestProperty,
if let response = response as? HTTPURLResponse,
let request = dataTask.originalRequest {
- self.cachePolicy = CacheStoragePolicy(for: request, response: response)
+ self.cachePolicy = cacheStoragePolicy(for: request, response: response)
}
self.delegate?.customHTTPProtocol(self, didRecieve: response)
guard error.code == Int(CFNetworkErrors.cfurlErrorNetworkConnectionLost.rawValue),
!didRetry,
- !didRecieveData
- else { return false }
+ !didRecieveData else {
+
+ return false
+ }
print("Retry download...")