Как вы точно рассчитываете отправленные / полученные байты программно в приложении для iPhone? - PullRequest
2 голосов
/ 24 марта 2009

Я пишу приложение для iPhone, которое может со временем отправлять / получать много данных в зависимости от интервалов опроса.

Я хотел бы отобразить количество отправленных / полученных байтов во время выполнения и, возможно, предупредить пользователя при достижении заданного пользователем порога. Любые советы о том, как отслеживать количество отправленных / полученных байтов в моем приложении? (Меня интересует только объем данных, которые мое приложение отправляет / получает во время работы).

Ответы [ 2 ]

2 голосов
/ 24 марта 2009

Если вы используете NSURLconnection, вы можете отслеживать данные, отправленные внутри соединения - (void): (NSURLConnection *) соединение didReceiveData: (NSData *) метод делегирования данных.

Каждый раз, когда это сообщение отправляется, запрашивайте размер data и добавляйте его в переменную экземпляра, содержащую итог.

Другие структуры, такие как запросы ASI, имеют специальные сообщения делегата для обновления прогресса.

1 голос
/ 30 марта 2009

Отображение байтов или даже КБ будет несколько вводить в заблуждение. Я бы использовал технику Роджера и округлил бы вашу сумму до ближайших 0,1 МБ.

Строго говоря, вы не можете точно измерить данные, отправленные и полученные по проводам. В дополнение к байтам, которые вы можете измерить, будут некоторые издержки TCP плюс любые повторные передачи из-за проблем с соединением.

Даже если Apple предоставит свои глобальные счетчики, вы не сможете различить байты и байты фоновых приложений Apple (например, push mail).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...