Я использую класс Reachability для мониторинга сетевого подключения и доступности сервера в нескольких приложениях для iPhone. У меня в AppDelegate есть следующий код:
// Observe the kNetworkReachabilityChangedNotification. When that notification is posted, the
// method "reachabilityChanged" will be called.
[[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(reachabilityChanged:) name: kReachabilityChangedNotification object: nil];
// Start checking for reachability to myWebService.com
//Change the host name here to change the server your monitoring
hostReach = [Reachability reachabilityWithHostName: @"myWebService.com"];
[hostReach startNotifier];
internetReach = [Reachability reachabilityForInternetConnection];
[internetReach startNotifier];
wifiReach = [Reachability reachabilityForLocalWiFi];
[wifiReach startNotifier];
Когда я профилирую одно из приложений (специальное приложение для чтения блогов для блога моей компании) с помощью Instruments, при включении уведомлений я вижу разницу в +5,9 Мб сетевого трафика за одну минуту, когда я комментирую эти строки вне.
Как правильно проверить подключение к сети перед отправкой запроса на сервер? Я, вероятно, не должен следить за соединением все время, а только когда мне нужно знать.
Мое другое приложение связывается с API веб-службы для публикации страниц и видео, и я хочу знать, есть ли у меня подключение к этой службе, прежде чем пытаться опубликовать, но я хочу минимизировать сетевой трафик, где я могу.
Я думаю, это то, что Apple ищет при утверждении / отклонении приложений в магазине приложений.