Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/103.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 无法在非常低的网络上从可达性获取响应_Iphone_Ios_Objective C_Reachability - Fatal编程技术网

Iphone 无法在非常低的网络上从可达性获取响应

Iphone 无法在非常低的网络上从可达性获取响应,iphone,ios,objective-c,reachability,Iphone,Ios,Objective C,Reachability,如果我试图检查主机的可达性,这需要花费太多的时间进行检查,同时我真的希望可达性的反馈能更进一步,那么在这方面我能做些什么呢。我想取消可达性检查,如果它需要超过4秒,我想继续我的应用程序在脱机模式下工作。我真的不希望我的用户等到我从可达性得到反馈。有没有什么解决办法,比如,如果可达性占用太多时间,我可以以任何方式跳过它吗 - (BOOL)isReachableWithHostName:(NSString *)hostname { BOOL reachable; Reachabi

如果我试图检查主机的可达性,这需要花费太多的时间进行检查,同时我真的希望可达性的反馈能更进一步,那么在这方面我能做些什么呢。我想取消可达性检查,如果它需要超过4秒,我想继续我的应用程序在脱机模式下工作。我真的不希望我的用户等到我从可达性得到反馈。有没有什么解决办法,比如,如果可达性占用太多时间,我可以以任何方式跳过它吗

- (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
    ,并假设在所需超时后无法访问,继续