AFNetworking 2.0:isReachable 总是返回 False
Posted
技术标签:
【中文标题】AFNetworking 2.0:isReachable 总是返回 False【英文标题】:AFNetworking 2.0 : isReachable always returns False 【发布时间】:2014-07-04 10:16:14 【问题描述】:我在我的应用程序中使用 AFNetworking 2.0 进行可达性检查。但是,可达属性总是返回 false。请看代码
[[AFNetworkReachabilityManager sharedManager] startMonitoring];
_isInternetReachable = [AFNetworkReachabilityManager sharedManager].reachable ;
[[AFNetworkReachabilityManager sharedManager] setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status)
NSLog(@"Reachability: %@", AFStringFromNetworkReachabilityStatus(status));
if (status)
_isInternetReachable = YES;
else
_isInternetReachable = NO;
];
当我在第二行之后检查 _isInternetReachable 时,它总是返回 false。但是一旦我的应用程序启动,它就会进入状态更改块并将 _isInternetReachable 设置为 Yes。 我无法弄清楚这种行为。我正在模拟器上对此进行测试。请帮忙。谢谢
【问题讨论】:
【参考方案1】:请尝试使用以下代码。
监控代码
self.manager = [[AFHTTPRequestOperationManager alloc] initWithBaseURL:[NSURL URLWithString:@"http://www.google.com"]];
self.manager.responseSerializer = [AFJSONResponseSerializer serializer];
__block ViewController *blocksafeSelf = self;
NSOperationQueue *operationQueue = self.manager.operationQueue;
[self.manager.reachabilityManager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status)
// NSLog(@"stats: %d", self.manager.reachabilityManager.isReachable);
[blocksafeSelf finish];
switch (status)
case AFNetworkReachabilityStatusNotReachable:
// we need to notify a delegete when internet conexion is lost.
// [delegate internetConexionLost];
NSLog(@"No Internet Conexion");
break;
case AFNetworkReachabilityStatusReachableViaWiFi:
NSLog(@"WIFI");
break;
case AFNetworkReachabilityStatusReachableViaWWAN:
NSLog(@"3G");
break;
default:
NSLog(@"Unkown network status");
[operationQueue setSuspended:YES];
break;
];// Do any additional setup after loading the view, typically from a nib.
[self.manager.reachabilityManager startMonitoring];
回调方法:
-(void)finish
NSLog(@"---:%d", self.manager.reachabilityManager.isReachable);
【讨论】:
以上是关于AFNetworking 2.0:isReachable 总是返回 False的主要内容,如果未能解决你的问题,请参考以下文章