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 managerForDomain:@" www.google.com"];没有工作
答案 0 :(得分:4)
一些事情。
首先,您确实应该在开始监控之前配置经理。在这种情况下,这意味着您应在致电setReachabilityStatusChangeBlock
之前致电startMonitoring
。
其次,当您使用AFNetworkReachabilityManager
创建新managerForDomain:
时,您负责管理对象的生命周期。如果您在启用ARC的情况下使用上面的代码,mgr
一旦超出范围就会被释放,这意味着没有经理可以监控可达性。一种解决方案是使mgr
成为类的实例变量,例如申请代表。
答案 1 :(得分:1)
/ ** 创建并返回指定域的网络可访问性管理器。
@param domain用于评估网络可达性的域。
@return初始化网络可访问性管理器,主动监视指定的域。 * / +(instancetype)managerForDomain:(NSString *)domain;
这是来自afnetworking的源代码, 要监视指定的域,只需使用此类方法为该域创建可访问性管理器。像这样
AFNetworkReachabilityManager *mgr= [AFNetworkReachabilityManager managerForDomain:@"www.google.com"];