【发布时间】:2017-10-04 06:03:37
【问题描述】:
我正在尝试使用 NSURLConnection 检测我的互联网速度。我所做的是,我开始下载一个文件,在 NSURLConnection 的代表中,我开始一个时间,然后当下载完成时,它会获取时间范围以及接收到的数据,然后我计算得到 mb/sec 使用下面的代码。
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!
【问题讨论】:
-
我标记的另一件事是,当我测试时,它在模拟器中显示正确的结果,但是在原始设备中,它显示的更少!!
-
顺便说一句,该示例使用了
NSURLConnection,现在已弃用。请改用NSURLSession。在回答您关于timeIntervalSinceDate的问题时,它返回一个NSTimeInterval,以秒为单位。
标签: ios networking nsurlconnection nsdata nstimeinterval