Я пытаюсь определить скорость моего интернета с помощью NSURLConnection. То, что я делаю, я начинаю загружать файл, в делегатах NSURLConnection, я начинаю время, а затем, когда загрузка заканчивается, он получает временные рамки, а также полученные данные, а затем я рассчитываю получить мб/сек, используя ниже кода.Обнаружение скорости в Интернете в быстром
if (startTime != nil) {
elapsed = NSDate().timeIntervalSinceDate(startTime)
NSLog("\(length) -- \(elapsed)")
var d = (Double(length)/elapsed)
var result = CGFloat(d/1024)
result = result * 0.0078125
result = result * 0.0009765625
return result
}
Мой вопрос, почему я разделив 1024 здесь, потому что если я не делаю я получаю что-то бит/байт ...
Я предполагаю, что я получаю секунд от NSDate().timeIntervalSinceDate(startTime)
и байты из NSData длина
Я думаю, что получаю правильное значение, но я не уверен. Дайте мне знать, почему необходимо разделить 1024!
Еще одна вещь, которую я отметил, что, когда я тестировал, ее показ справа приводит к симулятору, однако в оригинальном устройстве его отображение меньше! – Saty
Кстати, в этом примере используется 'NSURLConnection', который теперь устарел. Вместо этого используйте 'NSURLSession'. В ответ на ваш вопрос о 'timeIntervalSinceDate', который возвращает [' NSTimeInterval'] (https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Miscellaneous/Foundation_DataTypes/index.html#//apple_ref/c/tdef/NSTimeInterval), который измеряется в секундах. – Rob