2015-01-24 3 views
0

Я использую класс Apple Reachability в своем приложении, чтобы его заметили, когда я нахожусь в сети или вне сети, поэтому я знаю, должен ли я получать данные из онлайн или локально.iOS Reachability Unknown Moment

Моя проблема в том, что есть небольшой промежуток в 3-5 секунд. Если я отключусь от сети, например. включите режим полета, его занимает 3-5 секунд, прежде чем я узнаю, что я больше не в сети.

Это означает, что, если я пытаюсь извлечь какие-либо данные в приложении в течение этого периода, он думает, что я в Интернете, и как таковые не могут получить данные и т.д.

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

ответ

0

Попробуйте установить класс достижимости в AppDelegate.m так:

Reachability *internetReachable; 

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    // Set up Reachability 
    internetReachable = [Reachability reachabilityForInternetConnection]; 

    // check for internet connection 
    [[NSNotificationCenter defaultCenter] addObserver:self 
              selector:@selector(checkNetworkStatus:) 
               name:kReachabilityChangedNotification object:nil]; 

    [internetReachable startNotifier]; 

- (void)checkNetworkStatus:(NSNotification *)notice { 
    // called after network status changes 

    if (connected]) { 
     // Your code HERE! 
    } 

} 

- (BOOL)connected { 
    Reachability *reachability = [Reachability reachabilityForInternetConnection]; 
    NetworkStatus networkStatus = [reachability currentReachabilityStatus]; 
    return networkStatus != NotReachable; 
} 

Это отлично работает для меня.

+0

Я пробовал свой код, и он работает идентично моему существующему коду. По-прежнему существует заметный разрыв между потерями сетевого соединения и уведомлением. –

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