连接可用后立即触发操作

时间:2013-03-12 16:53:37

标签: ios objective-c

我希望在连接可用后触发操作。有可用的解决方案,允许手动检查互联网连接。我找到的一种方法是使用NSTimer在固定的时间间隔内检查互联网连接。但这是检查它的最有效方法吗?如果没有,对此有什么正确的解决方案?

2 个答案:

答案 0 :(得分: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;
        }
    }
 }

答案 1 :(得分:0)

检查apple提供的reachability code。在appdelegate.m中,您可以看到此方法。它将通知网络更改。上面的工作

//Called by Reachability whenever status changes.
- (void) reachabilityChanged: (NSNotification* )note
{
    Reachability* curReach = [note object];
    NSParameterAssert([curReach isKindOfClass: [Reachability class]]);
    [self updateInterfaceWithReachability: curReach];
}