Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/113.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios AFNetworking-检查域的可达性_Ios_Objective C_Afnetworking - Fatal编程技术网

Ios AFNetworking-检查域的可达性

Ios AFNetworking-检查域的可达性,ios,objective-c,afnetworking,Ios,Objective C,Afnetworking,我正在使用AFNetworking 2.2.1,并尝试使用AFNetworkReachabilityManager检查某个域是否可访问,但它始终返回否。可能我没有正确使用此选项,希望您提供任何提示 AFNetworkReachabilityManager *manager = [AFNetworkReachabilityManager managerForDomain:@"www.google.com"]; // always returns NO: NSLog([manager isReach

我正在使用AFNetworking 2.2.1,并尝试使用AFNetworkReachabilityManager检查某个域是否可访问,但它始终返回否。可能我没有正确使用此选项,希望您提供任何提示

AFNetworkReachabilityManager *manager = [AFNetworkReachabilityManager managerForDomain:@"www.google.com"];
// always returns NO:
NSLog([manager isReachable] ? @"YES" : @"NO");
我还尝试了startMonitoring方法(在manager变量声明之后),但没有成功:

[manager startMonitoring];
编辑:正如David指出的,需要添加状态更改块以获得通知:

AFNetworkReachabilityManager *manager = [AFNetworkReachabilityManager managerForDomain:@"www.google.com"];
[manager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status){
    switch (status) {
        case AFNetworkReachabilityStatusReachableViaWWAN:
        case AFNetworkReachabilityStatusReachableViaWiFi:
        case AFNetworkReachabilityStatusNotReachable:
            NSLog(@"Never called");
            break;
        default:
            NSLog(@"Never called");
        break;
    }
}];
[manager startMonitoring];
// always returns NO:
NSLog([manager isReachable] ? @"YES" : @"NO");

AFReachabilityManager
异步执行它的神奇功能,因此
isReachable
的结果在完成之前是无效的。当
isReachable
的结果有效时,最简单的通知方式是使用
setReachabilityStatusChangeBlock:
设置状态更改块,当状态不再是
AFNetworkReachabilityStatusUnknown

时,请执行任何适当的操作。我还使用setReachabilityStatusChangeBlock:,尝试了上述代码,但从未调用过该块。您仍然需要调用startMonitoring。我使用setReachabilityStatusChangeBlock+startMonitoring调用更新了原始帖子,但是这个街区从来没有人叫过。对不起,你说得对。在[manager isReachable]调用之后,我正在调用stopMonitoring方法。。。