Reachability working on simulator but not on device

In my project I am using Reachability class provided by Apple. When there is no internet connection, I am displaying an alert message. Everything is working fine, when I test it on the simulator, but when am running it on iPad, the alert message is not shown when there is no internet.

I am running the code on iOS 5.0.

  • When should I check for internet connectivity
  • Need some help with Reachability (2.0.3ddg)
  • How to use NetworkReachabilityManager in Alamofire
  • How to get Reachability Notifications in iOS in Background when dropping Wi-Fi network?
  • Check if iPhone is connected to the internet
  • iPhone reachability checking
  • Any help would be appreciated.

    EDIT:

    -(BOOL)isInternetConnectionPresent{
    
    Reachability *objReachability = [Reachability reachabilityForInternetConnection];    
    NetworkStatus internetStatus = [objReachability currentReachabilityStatus];
    
    if(internetStatus != NotReachable)
    {
        return YES;
    }
    
    
       return NO;
    }
    

    UPDATE:

    Used NSLog to debug. Seems there was some problem with WWAN, even when there was no SIM card. Restarted the iPad & switched OFF & ON the Wi Fi again. Now it works fine. Thanks for the help guys.

    2 Solutions Collect From Internet About “Reachability working on simulator but not on device”

    You have to check all the NetworkStatus and Cross Check the device Wifi Connection status again

    Example:

    // to check if, wifi connected properly in current device.
    - (BOOL)networkCheck {
    
        Reachability *wifiReach = [Reachability reachabilityForInternetConnection];
        NetworkStatus netStatus = [wifiReach currentReachabilityStatus];
    
        switch (netStatus)
        {
            case NotReachable:
            {
                NSLog(@"NETWORKCHECK: Not Connected");          
                return NO;
                break;
            }
            case ReachableViaWWAN:
            {
                NSLog(@"NETWORKCHECK: Connected Via WWAN");
                return NO;
                break;
            }
            case ReachableViaWiFi:
            {
                NSLog(@"NETWORKCHECK: Connected Via WiFi");
                return YES;
                break;
            } 
        }
        return false;
    
    }
    

    In My case the following code snippet is working perfectly with iOS 5. Here i am checking internet connectivity with WIFI.

    - (NSString *)stringFromStatus:(NetworkStatus ) status {
    NSString *string;
    switch(status) {
        case NotReachable:
            string = @"Not Reachable";
            break;
        case ReachableViaWiFi:
            string = @"Reachable via WiFi";
            break;
        case ReachableViaWWAN:
            string = @"Reachable via WWAN";
            break;
        default:
            string = @"Unknown";
            break;
    }
    return string;
    

    }

    ———————— now with following line of code you can check.

     Reachability *reach =[Reachability reachabilityForLocalWiFi] ;
    NetworkStatus status = [reach currentReachabilityStatus];
    NSLog(@"%@", [self stringFromStatus: status]);
    
    if ([[self stringFromStatus: status] isEqualToString: @"Not Reachable"]) 
    {
        UIAlertView *alert = [[UIAlertView alloc]
                              initWithTitle:@"Connection Failure !"
                              message:@"Your Device is not Connected to any active WIFI Connection."
                              delegate:self
                              cancelButtonTitle:@"OK"
                              otherButtonTitles:nil];
        [alert show];
    }
    else
    { //connected to internet.
    

    }