首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有Reachability类的iOS连接检查器失败。(reachabilityWithHostName:)

带有Reachability类的iOS连接检查器失败。(reachabilityWithHostName:)
EN

Stack Overflow用户
提问于 2014-03-14 11:11:19
回答 1查看 1.1K关注 0票数 0

我使用苹果的Reachability类reachabilityWithHostName: method编写了一个连接检查器。这是我的密码。

代码语言:javascript
复制
-(BOOL)checkConnection{
Reachability *reachability = [Reachability reachabilityWithHostName:@"www.example.com"];
NetworkStatus remoteHostStatus = [reachability currentReachabilityStatus];
if (remoteHostStatus != NotReachable) {
    return YES;
}
else {return NO;}
}

下面是用例:

  • 如果我有wifi连接**:按预期返回YES。
  • 如果我有蜂窝连接:按预期返回YES。
  • 如果禁用单元格和Wifi :按预期返回NO。
  • 如果我有WiFi连接,但DSL电缆是拔出的(因此主机不应该被连接到,互联网连接不可用):返回是,它是意外的。
  • 此外,如果启用了蜂窝,但在我目前的位置上,我没有信号:返回是,这是意外的。

我如何解决这些意想不到的结果?谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-14 11:24:35

在@Martin的帮助下,我在服务器中添加了一个html文件。里面只有一个随机值。现在我检查可达性。如果服务器是可访问的,我试图从html文件中获取值。如果我能得到肯定的值的话。如果我不能( serverValue应该是零)返回否。

代码语言:javascript
复制
-(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;}
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22403388

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档