2013-04-07 2 views
0

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

Я использовал возможность достижимости (https://github.com/tonymillion/Reachability), чтобы узнать, есть ли доступное активное соединение. Проблема в том, что iPhone требует несколько секунд, чтобы активировать соединение после того, как он был неактивным. Это означает, что приложение видит, что нет доступных подключений и будет отображаться сообщение об ошибке.

То, что я хотел бы случиться, что приложение будет первым проверить, если есть доступное подключение:

Reachability *reachability = [Reachability reachabilityWithHostname:URL_LOTTOTALL_WEB]; 
NetworkStatus internetStatus = [reachability currentReachabilityStatus]; 
if (internetStatus == NotReachable) { 
} else { 
} 

Если соединение не доступно, я хотел бы повторить в течение нескольких секунд (может быть, 2 или 3). И если по-прежнему не доступно соединение, появится сообщение об ошибке. Любые предложения для простой реализации для достижения этого?

+0

Вы также можете просто попробовать использовать цикл while – Jona

ответ

3

Попробуйте использовать блоки обратного вызова Reachability, как описано в this answer.

internetReachableFoo = [Reachability reachabilityWithHostname:@"www.google.com"]; 
// Internet is reachable 
internetReachableFoo.reachableBlock = ^(Reachability*reach) 
{ 
    // Update the UI on the main thread 
    dispatch_async(dispatch_get_main_queue(), ^{ 
     NSLog(@"Yayyy, we have the interwebs!"); 
    }); 
}; 

// Internet is not reachable 
internetReachableFoo.unreachableBlock = ^(Reachability*reach) 
{ 
    // Update the UI on the main thread 
    dispatch_async(dispatch_get_main_queue(), ^{ 
     NSLog(@"Someone broke the internet :("); 
    }); 
}; 

[internetReachableFoo startNotifier]; 
+0

Спасибо, я получил его для работы с аналогичным решением. –

Смежные вопросы