如果我要检查主机的可访问性,这需要花费太多时间进行检查,并且意味着我确实希望来自可访问性的反馈能够进一步解决。如果要花费4秒钟以上的时间,我想取消可达性检查,并且我想继续让我的应用在离线模式下工作。我真的不希望我的用户等待一段时间,直到获得Reachabiltiy的反馈。是否有其他解决方法,例如如果可达性花费太多时间,我可以以任何方式跳过它吗?
- (BOOL)isReachableWithHostName:(NSString *)hostname {
BOOL reachable;
Reachability *reachability = [Reachability reachabilityWithHostName:hostname];
NetworkStatus internetStatus = [reachability currentReachabilityStatus];
if (internetStatus == NotReachable) {
reachable = NO;
} else {
reachable = YES;
}
return reachable;
}
- (BOOL)isGoogleReachable {
return [self isReachableWithHostName:@"google.com"];
}
如果我想从可达性中获取反馈,而响应时间少于4秒,该怎么办。
最佳答案
使用异步方法。可达性更改时,可达性会生成通知。
添加超时NSTimer
并假设在所需的超时后无法到达,请继续进行操作。
关于iphone - 在非常低的网络上无法获得可达性的响应,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16853103/