0

可能重复:
网络中断时我的应用程序仍然存在

当网络连接中断时,从互联网加载的数据使我的应用程序处于缓慢状态。有没有办法解决这个问题。

4

2 回答 2

3

您可以在任何方便的地方检查互联网,它可以在 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
}
于 2012-09-27T07:04:08.807 回答
1

你可以检查互联网连接与否。使用以下代码调用 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;
    }
} 

}

于 2012-09-27T07:29:14.283 回答