在第 4 节中,有一个 Reachability 包装器的示例(但在该实现中,没有 kReachabilityChangedNotification 处理)。那么应该如何使用呢?— 正如您在 MTReachabilityManager 的界面中看到的那样,有 1 种获取管理器单例实例的方法和 4 种使用它的方法:
+ (BOOL)isReachable;
+ (BOOL)isUnreachable;
+ (BOOL)isReachableViaWWAN;
+ (BOOL)isReachableViaWiFi;
对于需要连接的方法中的第二种方法,您必须执行以下操作:
if ([[MTReachabilityManager sharedManager] isReachable]) {
//do internet
} else {
//alert 'no internet' or something
}
对于第一种方法(从网络获取数据期间连接丢失),此包装器不会帮助您(未实现对 kReachabilityChangedNotification 的侦听)。因此,您必须从本教程的第 3 部分(第 3 步:通知)中添加代码——在调用网络代码之前在某处添加 kReachabilityChangedNotification 的侦听器:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reachabilityDidChange:) name:kReachabilityChangedNotification object:nil];
并添加处理通知的方法(将在互联网更改其状态时触发):
- (void)reachabilityDidChange:(NSNotification *)notification {
Reachability *reachability = (Reachability *)[notification object];
if ([reachability isReachable]) {
NSLog(@"Reachable");
//if before there was no internet - now you can do whatever user wants when there was no internet
} else {
NSLog(@"Unreachable");
//alert retry
}
}