我正在尝试使用NSURLConnection检测我的互联网速度。我做的是,我开始下载一个文件,在NSURLConnection的代表中,我开始一段时间,然后当下载完成时,它获取时间范围以及收到的数据然后我计算得到mb /秒使用下面的代码。
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!
答案 0 :(得分:0)
我在the example中除以1024你只是因为我认为看每秒字节数会产生一个太大而无法理解的数字(并且它表明由于可变性而具有误导性的准确度)在那个数字)。
除以1024,就可以得到每秒千字节数。要获得每秒兆字节,你需要除以1024 * 1024.原始代码示例中的1024是一个错误,因为它会产生每秒千字节数。
所以,使用你想要的任何测量。每秒字节数,每秒千字节,每秒兆字节数。或者你可以将每秒兆字节乘以8并获得每秒兆比特(另一种常用的速度衡量标准)。只需将每秒的字节数除以适当的因子。