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