Правильный способ проверить сетевое соединение в iOS - PullRequest
0 голосов
/ 11 ноября 2011

Я использую класс 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 ищет при утверждении / отклонении приложений в магазине приложений.

1 Ответ

1 голос
/ 11 ноября 2011

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

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