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