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