2014-10-21 21 views
5

Apple Reachability örnek kodunun Reachability sınıfları, kullanıcı cihazı uçak moduna geçirdiğinde oldukça gecikmeli görünmektedir. Kullanıcı uçak modu ve gerçek bildirim arasında yaklaşık 5 saniyelik bir boşluk görüyorum.iOS 8'deki erişilebilirlik gecikmeli mi?

Bildirim almanın daha hızlı bir yolu var mı? veya bu işletim sisteminde yeni bir yol mu var?

+0

Beş saniye gayet iyi, IMO – Undo

+1

Elden önce başarısız olmaya başlayan ağ çağrılarına tepki veriyorsa yeterince iyi değil. – cynistersix

cevap

0

Bildirime güvenmek yerine bağlantıyı sorgulayan bir örnek oluşturdum. Böylece, sadece Reaktivite örneğini kullanarak ve bağlantıyı kontrol ederek hala bağlı olup olmadığınızı belirleyebilirsiniz.

- (NetworkStatus)currentReachabilityStatus 
{ 
    NSAssert(_reachabilityRef != NULL, @"currentNetworkStatus called with NULL SCNetworkReachabilityRef"); 
    NetworkStatus returnValue = NotReachable; 
    SCNetworkReachabilityFlags flags; 

    if (SCNetworkReachabilityGetFlags(_reachabilityRef, &flags)) 
    { 
     if (_alwaysReturnLocalWiFiStatus) 
     { 
      returnValue = [self localWiFiStatusForFlags:flags]; 
     } 
     else 
     { 
      returnValue = [self networkStatusForFlags:flags]; 
     } 
    } 

    return returnValue; 
} 

Bu sayede, bildirimin zamanında alınmasını beklemek yerine bağlantı durumunun ne olduğunu anlayabilirsiniz.