Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/108.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_Host_Reachability - Fatal编程技术网

iOS可达性:主机方法存在问题

iOS可达性:主机方法存在问题,ios,host,reachability,Ios,Host,Reachability,我已经创建了一个方法来检查主机是否可以访问。我从苹果开发者网站下载了可达性类(包括.h和.m),并导入到我的项目中。我已将NSString名称作为URL(主机名)传递。主机名为。然而,不管我传递给这个方法的主机名是什么,它总是返回no(connectToHost)。代码如下: - (BOOL) checkHostAvailability:(NSString *)Name{ BOOL connectToHost; hostReach = [[Reachability

我已经创建了一个方法来检查主机是否可以访问。我从苹果开发者网站下载了可达性类(包括.h和.m),并导入到我的项目中。我已将NSString名称作为URL(主机名)传递。主机名为。然而,不管我传递给这个方法的主机名是什么,它总是返回no(connectToHost)。代码如下:

- (BOOL) checkHostAvailability:(NSString *)Name{
        BOOL connectToHost;
        hostReach = [[Reachability reachabilityWithHostName:Name] retain];
        [hostReach startNotifier];

        NetworkStatus hostStatus = [hostReach currentReachabilityStatus];
        NSLog(@"Name: %@", Name);
        NSLog(@"hostStatus is %@", hostStatus);

        if(hostStatus == NotReachable){
                NSLog(@"Here is the checkHostAvailability Method and host NOT reachable");
                connectToHost = NO;
       }else{
                NSLog(@"Here is the checkHostAvailability Method and host is reachable");
                connectToHost = YES;
       }
       return connectToHost;


}
经过几个小时的调查,我发现NetworkStatus hostStatus始终等于null。我想这就是这个方法不起作用的原因。我花了8个小时来找出这个代码的问题并搜索这个网站,但是我仍然找不到问题和解决方案


请帮忙,非常感谢

从主机名中删除“http://”。

如果要使用
http://www.google.com
作为主机,您可以传递'google.com'作为主机名。不要包括
http://
、结束斜杠或任何可能跟在结束斜杠后面的内容<代码>www.可以包含在内

[Reachability reachabilityWithHostName:@"google.com"];

这是我用于所有连接检查的代码(请参见此处:),它对我来说运行良好:

-(BOOL) hasConnection{

//check network status _ iphone settings
Reachability *internetReachability = [Reachability reachabilityForInternetConnection];
[internetReachability startNotifier];


NetworkStatus status=[internetReachability currentReachabilityStatus];
if (status == NotReachable) {
    NSLog(@"No internet");
    //[internetReachability stopNotifier];
    return NO;
}else {
    NSLog(@"Internet is ON");
   // [internetReachability stopNotifier];

    //check internet connection _reachable path

    Reachability *hostReachable=[Reachability   reachabilityWithHostName:@"www.apple.com"];
    BOOL connectionRequired =[hostReachable connectionRequired];
    NSLog(@"%hhd",connectionRequired);

    [hostReachable startNotifier];

    Reachability *wifiReachability=[Reachability reachabilityForLocalWiFi];
    [wifiReachability startNotifier];

    NetworkStatus hostStatus=[hostReachable currentReachabilityStatus];
    if(hostStatus == NotReachable){
        NSLog(@"No internet connection");
        [hostReachable stopNotifier];
        return NO;
    }else{
        NSLog(@"Connection is ok");
        [hostReachable stopNotifier];
        return YES;
    }
}
}