0

如果我正在尝试检查主机的可达性,这需要花费太多时间来检查并且意味着我真的希望来自可达性的反馈更进一步,我能做些什么。如果需要超过 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 秒的情况下从可达性中获取反馈,我该怎么办。

4

1 回答 1

1
  1. 使用异步方法。当可达性发生变化时,可达性会生成通知。
  2. 添加超时NSTimer并继续假设在所需的超时后无法访问。
于 2013-05-31T08:36:04.340 回答