如何在iPhone应用程序中以编程方式准确计算发送/接收的字节数?

时间:2009-03-23 23:55:42

标签: iphone

我正在编写一个可能随时间发送/接收大量数据的iPhone应用程序,具体取决于轮询间隔。

我想在运行时显示已发送/已接收字节的数量,并在达到用户指定的阈值时提醒用户。有关如何跟踪我的应用程序中发送/接收字节数量的任何提示? (我只对我的应用程序在运行时发送/接收的数据量感兴趣。)

2 个答案:

答案 0 :(得分:2)

如果您正在使用NSURLconnection,那么您可以跟踪 - (void)连接中发送的数据:(NSURLConnection *)连接didReceiveData:(NSData *)数据委托方法。

每次发送此消息时,查询data的大小并将其添加到保存总数的实例变量中。

其他框架(例如ASI请求)具有特定的委托消息以更新进度。

答案 1 :(得分:1)

显示字节,甚至KB,都会有些误导。我会使用Roger's technique并将总数调整到最接近的0.1MB。

严格来说,您无法精确测量通过线路发送和接收的数据。除了可以测量的字节外,由于连接问题,还会有一些TCP开销加上任何重传。

即使Apple提供全局计数器,您也无法区分字节和Apple的后台应用程序字节(例如推送邮件)。