2011-06-08 142 views
0

Iam目前正在检查互联网连接,当我第一次启动应用程序时,但如果我关闭应用程序并打开飞行模式,然后运行该应用程序返回其工作或它应该检查互联网连接,如果我失去了我的wifi,它应该说你的互联网连接丢失或类似的东西。任何人都有适当的答案呢?Iphone Sdk在应用程序中间检查互联网连接?

回答

1

使用Reachability API。以下是我的一个项目的应用程序委托文件中的一些代码。

// ivars 
Reachability* hostReach; 
Reachability* internetReach; 
Reachability* wifiReach; 

- (void) reachabilityChanged: (NSNotification*)note { 

    Reachability *curReach = (Reachability *)[note object]; 

    if ([curReach currentReachabilityStatus] == NotReachable) { 

     UIAlertView *alert = [[[UIAlertView alloc] init] autorelease]; 
     alert.title = @"No network connection?"; 
     alert.message = @"No network connection."; 
     alert.delegate = self; 
     [alert addButtonWithTitle:@"OK"]; 
     [alert show]; 

    } 

} 

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {  

    [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(reachabilityChanged:) name: kReachabilityChangedNotification object: nil]; 

    hostReach = [[Reachability reachabilityWithHostName: @"www.test.com"] retain]; 
    [hostReach startNotifier]; 

    internetReach = [[Reachability reachabilityForInternetConnection] retain]; 
    [internetReach startNotifier]; 

    wifiReach = [[Reachability reachabilityForLocalWiFi] retain]; 
    [wifiReach startNotifier]; 

    // controller setup 
    viewController = [[CFSplashViewController alloc] init]; 

    [window addSubview:viewController.view]; 
    [window makeKeyAndVisible]; 

    return YES; 
} 

// and of course, remember to release all those resources..