Мы пытаемся отобразить представление предупреждения, когда нет соединения, и мы используем классы доступности 2.2 от Apple. Проблема, с которой мы сталкиваемся, заключается в том, что при запуске программы мы всегда получаем предупреждение о том, что нет подключения к Интернету, но мы подключены к Интернету. Есть ли правильный способ проверить подключение к Интернету с этими классами?
Проверка интернет-соединения с помощью Reachability 2.2
comment
Вы смотрели пример кода Reachability?
- person jtbandes   schedule 28.07.2010
Ответы (2)
Я помню, как читал, что код Reachability в примерах кода Apple не очень хорош для проверки сети. Рекомендуемый подход заключался в том, чтобы проверить, видит ли устройство ваш веб-сайт (или веб-страницу), и если не выдает ошибку.
Я искал, где я это читал, но не смог найти оригинал. Вот другая ссылка, которая использует этот подход:
http://www.iphonedevx.com/?p=657
person
nevan king
schedule
28.07.2010
В этом примере он использует класс достижимости.
- person Chris; 28.07.2010
Проблемы были в более старых версиях класса Reachability от Apple — последняя версия (v. 2.n.n) была значительно переписана.
- person NickFitz; 29.09.2010
достижимости нужно некоторое время, чтобы выполнить свою задачу. так что будьте терпеливы. использование уведомлений для получения результатов.
Вот что я делаю:
BOOL hasInet; Reachability *connectionMonitor = [Reachability reachabilityForInternetConnection]; [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(inetAvailabilityChanged:) name: kReachabilityChangedNotification object: connectionMonitor]; hasInet = [connectionMonitor currentReachabilityStatus] != NotReachable;
а потом
-(void)inetAvailabilityChanged:(NSNotification *)notice { Reachability *r = (Reachability *)[notice object]; hasInet = [r currentReachabilityStatus] != NotReachable; }
который хорошо работает для меня.
person
xhan
schedule
26.09.2010