Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/121.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
iOS-具有可达性类的连接检查器失败。(具有主机名的可达性:)_Ios_Reachability_Internet Connection - Fatal编程技术网

iOS-具有可达性类的连接检查器失败。(具有主机名的可达性:)

iOS-具有可达性类的连接检查器失败。(具有主机名的可达性:),ios,reachability,internet-connection,Ios,Reachability,Internet Connection,我使用Apple的可达性类“reachabilityWithHostName:方法”编写了一个连接检查器。这是我的密码 -(BOOL)checkConnection{ Reachability *reachability = [Reachability reachabilityWithHostName:@"www.example.com"]; NetworkStatus remoteHostStatus = [reachability currentReachabilityStatus]; if

我使用Apple的可达性类“reachabilityWithHostName:方法”编写了一个连接检查器。这是我的密码

-(BOOL)checkConnection{
Reachability *reachability = [Reachability reachabilityWithHostName:@"www.example.com"];
NetworkStatus remoteHostStatus = [reachability currentReachabilityStatus];
if (remoteHostStatus != NotReachable) {
    return YES;
}
else {return NO;}
}
下面是用例:

-(BOOL)checkConnection{
Reachability *reachability = [Reachability reachabilityWithHostName:@"www.example.com"];
NetworkStatus remoteHostStatus = [reachability currentReachabilityStatus];
if (remoteHostStatus != NotReachable) {
    return YES;
}
else {return NO;}
}
  • 如果我有wifi连接**:按预期返回是
  • 如果我有手机连接:按预期返回YES
  • 如果手机和Wifi被禁用:按预期返回NO
  • 如果我有无线网络连接;但DSL电缆已拔下(因此主机不应拔下) 无法访问,internet连接不可用。):返回YES,这是意外情况。
  • 另外,如果手机已启用,但在我当前的位置上没有信号:返回YES,这是意外的。
如何解决这些意外结果?
谢谢。

在@Martin Koles的帮助下,我在服务器中添加了一个html文件。它里面只有一个随机值。现在我检查可达性。若服务器是可访问的,我将尝试从html文件中获取该值。然后,如果我能得到返回YES的值。如果我不能(serverValue应该是nil)返回NO

-(BOOL)checkConnection{
Reachability *reachability = [Reachability reachabilityWithHostName:@"www.example.com"];
NetworkStatus remoteHostStatus = [reachability currentReachabilityStatus];
if (remoteHostStatus != NotReachable) {
    return YES;
}
else {return NO;}
}
-(BOOL)checkConnection{
Reachability *reachability = [Reachability reachabilityWithHostName:@"www.izmirmobil.com"];
NetworkStatus remoteHostStatus = [reachability currentReachabilityStatus];
if (remoteHostStatus != NotReachable) {
    NSURL *url = [NSURL URLWithString:@"http://www.example.com/getAValue.html"];
    NSError *errr = nil;
    NSStringEncoding enc;
    NSString *serverValue = [[NSString alloc] initWithContentsOfURL:url usedEncoding:&enc error:&errr];
    if(serverValue)return YES;
    else return NO;

}
else {return NO;}
}
见此: