Доступность iOS не распознается при удалении хоста - PullRequest
2 голосов
/ 10 августа 2011

Я создаю приложение и пытаюсь проверить и убедиться, что устройство все еще доступно в сети (путем подключения к IP-адресу устройства). Я использую достижимость, чтобы подтвердить, что это доступно.

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

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

Ответы [ 4 ]

2 голосов
/ 10 августа 2011

API SCReachability только проверяет, сконфигурировано ли локальное оборудование так, чтобы оно могло достичь указанного адреса; это фактически не пытается достигнуть этого. Чтобы определить, является ли цель жива и здорова, вы должны попытаться открыть соединение с ней.

2 голосов
/ 10 августа 2011

Тогда не используйте достижимость!

Вместо этого используйте этот бит кода, который сработает;

NSString *connected = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://www.google.com"]];
wait(25000);
if (connected == NULL) {

NSLog(@"Not Connected"); 
//Code to show if not connected

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:nil message:@"Oops! You aren't connected to the Internet." 
delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alert show];
[alert release];

} else {
NSLog(@"Connected Successfully!");
//Any other code for successful connection
}
1 голос
/ 27 января 2012

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

0 голосов
/ 01 июня 2017

Apple обновила файл класса Reachabilty. Вы можете проверить это с последним Xcode. вот ссылка: Пример кода Apple Reachabilty

Я тестировал с Xcode 8.3.1 на iPhone 6 версии 10.3.1. Он уведомит пользователя об изменении состояния сети.

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