Я хочу знать, как получить скорость загрузки в Swift.
На самом деле у меня есть этот код из Правильный способ определения скорости интернета в iOS 8
class SpeedTest: UIViewController, URLSessionDelegate, URLSessionDataDelegate {
typealias speedTestCompletionHandler = (_ megabytesPerSecond: Double? , _ error: Error?) -> Void
var speedTestCompletionBlock : speedTestCompletionHandler?
var startTime: CFAbsoluteTime!
var stopTime: CFAbsoluteTime!
var bytesReceived: Int!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
checkForSpeedTest()
}
func checkForSpeedTest() {
testDownloadSpeedWithTimout(timeout: 5.0) { (speed, error) in
print("Download Speed:", speed ?? "NA")
print("Speed Test Error:", error ?? "NA")
}
}
func testDownloadSpeedWithTimout(timeout: TimeInterval, withCompletionBlock: @escaping speedTestCompletionHandler) {
guard let url = URL(string: "https://images.apple.com/v/imac-with-retina/a/images/overview/5k_image.jpg") else { return }
startTime = CFAbsoluteTimeGetCurrent()
stopTime = startTime
bytesReceived = 0
speedTestCompletionBlock = withCompletionBlock
let configuration = URLSessionConfiguration.ephemeral
configuration.timeoutIntervalForResource = timeout
let session = URLSession.init(configuration: configuration, delegate: self, delegateQueue: nil)
session.dataTask(with: url).resume()
}
func urlSession(_ session: URLSession, dataTask: URLSessionDataTask, didReceive data: Data) {
bytesReceived! += data.count
stopTime = CFAbsoluteTimeGetCurrent()
}
func urlSession(_ session: URLSession, task: URLSessionTask, didCompleteWithError error: Error?) {
let elapsed = stopTime - startTime
if let aTempError = error as NSError?, aTempError.domain != NSURLErrorDomain && aTempError.code != NSURLErrorTimedOut && elapsed == 0 {
speedTestCompletionBlock?(nil, error)
return
}
let speed = elapsed != 0 ? Double(bytesReceived) / elapsed / 1024.0 / 1024.0 : -1
speedTestCompletionBlock?(speed, nil)
}
}
Но я думаю, этот код о скорости загрузки (Скажите, если я не прав).
Извините, я повторяю еще раз, но как получить скорость загрузки?
С наилучшими пожеланиями