可能重复:
网络中断时我的应用程序仍然存在
当网络连接中断时,从互联网加载的数据使我的应用程序处于缓慢状态。有没有办法解决这个问题。
您可以在任何方便的地方检查互联网,它可以在 viewDidLoad 或 didFinishLaunching 方法中,下面是我用来检查互联网连接的示例代码
- (BOOL) connectedToNetwork
{
Reachability *r = [Reachability reachabilityWithHostName:@"www.google.com"];
NetworkStatus internetStatus = [r currentReachabilityStatus];
BOOL internet;
if ((internetStatus != ReachableViaWiFi) && (internetStatus != ReachableViaWWAN)) {
internet = NO;
} else {
internet = YES;
}
return internet;
}
Apple 提供了可达性示例应用程序来展示如何测试网络可用性.. 使用下面的代码可以实现自动可达性
if ([[Reachability reachabilityForLocalWiFi] currentReachabilityStatus] == ReachableViaWiFi)
{
// perform action that requires a local WiFi connection
}
else
{
// give a message that local WiFi is required
}
你可以检查互联网连接与否。使用以下代码调用 checkReachability 方法。它可以在 didFinishLaunching 或 viewWillAppear 或 viewDidLoad 方法中。
-(void)checkReachability { // 检查互联网连接 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(checkNetworkStatus:) name:kReachabilityChangedNotification object:nil];
internetReachable = [[Reachability reachabilityForInternetConnection] retain];
[internetReachable startNotifier];
// check if a pathway to a random host exists
hostReachable = [[Reachability reachabilityWithHostName: @"www.apple.com"] retain];
[hostReachable startNotifier];
}
-(void) checkNetworkStatus:(NSNotification *)notice {
// called after network status changes
NetworkStatus internetStatus = [internetReachable currentReachabilityStatus];
switch (internetStatus)
{
case NotReachable:
{
NSLog(@"The internet is down.");
break;
}
case ReachableViaWiFi:
{
NSLog(@"The internet is working via WIFI.");
break;
}
case ReachableViaWWAN:
{
NSLog(@"The internet is working via WWAN.");
break;
}
}
}