【发布时间】:2015-06-20 19:38:42
【问题描述】:
我正在尝试检查我的应用是否有互联网连接,我可以使用苹果的可达性来做到这一点,就像这样
internetReach = [Reachability reachabilityForInternetConnection];
[internetReach startNotifier];
NetworkStatus netStatus = [internetReach currentReachabilityStatus];
witch (netStatus){
case ReachableViaWWAN:{
isReachable = YES;
NSLog(@"4g");
noInternetView.hidden = YES;
break;
}
case ReachableViaWiFi:{
isReachable = YES;
noInternetView.hidden = YES;
NSLog(@"wifi");
break;
}
case NotReachable:{
NSLog(@"NONE");
noInternetView = [[CheckInternetView alloc] initWithFrame:self.view.bounds];
[self.view addSubview:noInternetView];
isReachable = NO;
break;
}
}
它可以工作,但现在我想做的是,如果这是没有互联网的最后一种情况,我会显示一个视图告诉用户,然后在后台,我想检查互联网何时恢复如果它确实回来了,然后像我一样删除视图。
我尝试将上述代码放入一个方法中,如果没有互联网,则再次调用该方法,但是视图没有出现,如果没有运行检查,它只是不断地反复运行该方法。
那么,如果没有互联网,我如何在后台运行检查以查看它何时返回,然后隐藏视图?
感谢您的帮助。
编辑
这是我第一次从 viewDidLoad 调用的方法
-(void)checkInternet {
internetReach = [Reachability reachabilityForInternetConnection];
[internetReach startNotifier];
NetworkStatus netStatus = [internetReach currentReachabilityStatus];
switch (netStatus){
case ReachableViaWWAN:{
isReachable = YES;
NSLog(@"4g");
noInternetView.hidden = YES;
break;
}
case ReachableViaWiFi:{
isReachable = YES;
noInternetView.hidden = YES;
NSLog(@"wifi");
break;
}
case NotReachable:{
NSLog(@"NONE");
noInternetView = [[CheckInternetView alloc] initWithFrame:self.view.bounds];
[self.view addSubview:noInternetView];
isReachable = NO;
[self checkInternet];
break;
}
}
}
当我重新打开互联网时它可以工作,我得到了正确的案例,但是当它持续运行以检查互联网何时开启时,视图没有出现?为什么不出现?
【问题讨论】:
-
@Aanabidden 感谢您的回复,您能再补充一点吗,我不太清楚如何使用这些?
-
它没有出现,因为您可以取消隐藏视图直到它被隐藏。
-
@Aanabidden 抱歉这句话没有意义
-
^你是
calling函数,抱歉我错过了这个词。
标签: ios wifi reachability internet-connection