AFNetworkReachabilityManager

AFNetworkReachabilityManager

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成为类的实例变量,例如应用程序委托。

10-08 02:46