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”];没用
最佳答案
几件事。
首先,您确实应该在开始监视之前配置管理器。在这种情况下,这意味着您应该在调用setReachabilityStatusChangeBlock
之前先调用startMonitoring
。
其次,当您使用AFNetworkReachabilityManager
创建新的managerForDomain:
时,您将负责管理对象的生存期。如果您在启用了ARC的情况下使用上述代码,则mgr
超出范围后将立即被释放,这意味着将没有管理器来监视可达性。一种解决方案是使mgr
成为类的实例变量,例如应用程序委托。