[objective-c]AFNetworking 返回尽管互联网的连接没有连接

发布时间: 2016/10/4 3:04:10
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我用 AFNetworking 来确定用户是否具有互联网连接。 它将返回 false wifi 和 4g LTE 和我检查以确保它们是业务。 我有以下代码︰

-(void)viewDidLoad{
 [[AFNetworkReachabilityManager sharedManager] startMonitoring];   

     if ([self connected])
        [self doSomething];
     else
        [self noConnection];
}

- (BOOL)connected {
     NSLog(@"This returns 0 %hhd", [AFNetworkReachabilityManager sharedManager].reachable);
     return [AFNetworkReachabilityManager sharedManager].reachable;
}

-(void)noConnection{
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"No Internet!"
                                                message:@"Sorry, but you don't have an internet      connection at this time.  Please try again later."
                                               delegate:self
                                      cancelButtonTitle:@"OK"
                                      otherButtonTitles:nil];
     [alert show];

 }

解决方法 1:

这不是一个解决方案使用 AFNetworking 但使用样本代码从苹果

一旦您已经下载并导入 Reachbility.mReachbility.h 文件

创建一个 helper 函数︰

-(BOOL)isConnected{
  Reachability *reachability = [Reachability reachabilityForInternetConnection];
  NetworkStatus networkStatus = [reachability currentReachabilityStatus];

  return !(networkStatus == NotReachable);    
}

然后使用它

if([self isConnected]){
 //connected!
}
else{
  //not connected to internet!
}

非常重要

如果您的项目不使用ARC

  • 转到目标 >
  • 构建阶段 >
  • 双击可达性文件
  • 添加-fno-objc-arc

希望这有助于

官方微信
官方QQ群
31647020