AFNetworkReachabilityManager *mgr=[AFNetworkReachabilityManager sharedManager];
[mgr startMonitoring];
[mgr setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
//NSLog(@"Reachability: %@", AFStringFromNetworkReachabilityStatus(status));
if ([AFNetworkReachabilityManager sharedManager].reachable) {
NSLog(@" ONLINE");
}
else
{
NSLog(@"OFFLINE");
}
}];这就是我现在是如何通过AFNetworking测试可达性的!如何检查特定域中的可达性?AFNetworking是如何测试可达性的呢?
AFNetworkReachabilityManager管理器:@“www.google.com”;没有工作
发布于 2014-08-20 04:41:34
几件事。
首先,您确实应该在开始监视之前配置管理器。在这种情况下,这意味着您应该在调用setReachabilityStatusChangeBlock之前调用startMonitoring。
其次,当您使用AFNetworkReachabilityManager创建新的managerForDomain:时,您负责管理对象的生存期。如果在启用ARC的情况下使用上面的代码,mgr将在超出范围后立即被释放,这意味着将没有管理器来监视可达性。一种解决方案是使mgr成为类的实例变量,例如应用程序委托。
发布于 2014-08-20 04:40:30
/**为指定的域创建并返回网络可达管理器。
@param域用于评估网络可达性的域。
@返回初始化的网络可达性管理器,并主动监视指定的域。*/ + (instancetype)managerForDomain:(NSString *)域;
这来自afnetworking源代码,要监视指定的域,只需使用这个类方法为该域创建一个可达性管理器。像这样
AFNetworkReachabilityManager *mgr= [AFNetworkReachabilityManager managerForDomain:@"www.google.com"];https://stackoverflow.com/questions/25395630
复制相似问题