0

一旦连接可用,我想触发一个动作。有一些可用的解决方案允许手动检查互联网连接。我发现的一种方法是使用 NSTimer 在固定时间间隔内检查互联网连接。但这是最有效的检查方法吗?如果不是,那么正确的解决方案是什么?

4

2 回答 2

2

在这里您如何注册观察者并收听它,您的应用程序将在kReachabilityChangedNotification网络状态发生变化时收听并提示您。

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

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



-(void) reachabilityHasChanged:(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;
        }
    }
 }
于 2013-03-12T17:09:34.283 回答
0

检查apple提供的可达性代码。在appdelegate.m中你可以看到这个方法。它会通知网络变化。工作就可以了

//Called by Reachability whenever status changes.
- (void) reachabilityChanged: (NSNotification* )note
{
    Reachability* curReach = [note object];
    NSParameterAssert([curReach isKindOfClass: [Reachability class]]);
    [self updateInterfaceWithReachability: curReach];
}
于 2013-03-12T17:03:28.263 回答