Я написал средство проверки соединения, используя метод reachabilityWithHostName: класса Apple Reachability. Вот мой код.
-(BOOL)checkConnection{
Reachability *reachability = [Reachability reachabilityWithHostName:@"www.example.com"];
NetworkStatus remoteHostStatus = [reachability currentReachabilityStatus];
if (remoteHostStatus != NotReachable) {
return YES;
}
else {return NO;}
}
Итак, вот варианты использования:
- если у меня есть подключение к Wi-Fi **: возвращает ДА, как и ожидалось.
- Если у меня есть сотовая связь: как и ожидалось, возвращает ДА.
- Если сотовая связь и Wi-Fi отключены: как и ожидалось, возвращает NO.
- Если у меня есть Wi-Fi соединение; но кабель DSL отключен (поэтому хост не должен быть доступен, подключение к Интернету недоступно.): возвращает ДА, и это неожиданно.
- Также, если сотовая связь включена, но в моем текущем положении у меня нет сигнала: возвращает ДА, и это неожиданно.
Как я могу решить эти неожиданные результаты? Спасибо.