Использование достижимости ASIHTTPRequest - PullRequest
0 голосов
/ 08 февраля 2012

Я начинаю использовать Reachability в своем проекте iOS, чтобы проверить, есть ли подключение к Интернету или нет.

Мое приложение состоит из UITabBarController с 3 различными вкладками.Корень каждой вкладки отличается UIViewController.В каждом контроллере я делаю несколько запросов, основываясь на действиях пользователя.

Мой вопрос заключается в том, как создать глобальную функцию (или макрос) для использования перед каждой функцией, которая использует подключение к Интернету без перезаписи этой функции в каждом контроллере.

ЕстьМожно ли иметь функцию, которая делает это?Я видел, что есть способ заставить приложение отправлять уведомления, основываясь на состоянии сети.Но посмотрите на этот пример:

  1. Пользователь коснется UIButton
  2. Сеть доступна, и запрос начнется.
  3. Если сеть выходит из строя, как остановитьзапрос и отображение, например, UIAlertView?

Я хорошо искал, но не могу найти ответы на свои вопросы, спасибо.

1 Ответ

1 голос
/ 08 февраля 2012

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

Просто попробуйте сделать сетевой запрос - вы получите сообщение об ошибке, если сеть недоступна. Обычно ответ возвращается сразу же, но если сеть нестабильная, это может занять некоторое время, поэтому вам не следует делать синхронные сетевые вызовы в главном потоке. Используйте NSURLConnection, если это возможно, и вы получите обратные вызовы, когда что-то случится.

...