Ios 如何使用NetworkReachabilityManager监视ip地址?

Ios 如何使用NetworkReachabilityManager监视ip地址?,ios,ios7,afnetworking,afnetworking-2,Ios,Ios7,Afnetworking,Afnetworking 2,目前,我的应用程序指向一个特定的非公共IP地址(172.16.214.214:44321),当我在工作时使用wifi时,该IP地址映射到我正在创建的服务。我将singleton设置为NetworkReachabilityManager: + (AFNetworkReachabilityManager*) probe { static AFNetworkReachabilityManager* probe = nil; static dispatch_once_t onceToke

目前,我的应用程序指向一个特定的非公共IP地址(172.16.214.214:44321),当我在工作时使用wifi时,该IP地址映射到我正在创建的服务。我将singleton
设置为NetworkReachabilityManager

+ (AFNetworkReachabilityManager*) probe {
    static AFNetworkReachabilityManager* probe = nil;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        struct sockaddr_in serverAddr;
        serverAddr.sin_family = AF_INET;
        serverAddr.sin_len = sizeof(serverAddr);
        serverAddr.sin_port = htons(44321);
        serverAddr.sin_addr.s_addr = inet_addr("172.16.214.214");
        probe = [AFNetworkReachabilityManager managerForAddress:&serverAddr];
    });
    return probe;
}
我在AppDelegate中启动它:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    [[HttpConnection probe] startMonitoring];
    NSLog(@"reachable 0: %hhd", [HttpConnection probe].reachable);
    NSLog(@"reach status 0: %d", [HttpConnection probe].networkReachabilityStatus);
    ...
正如所料,这些语句分别输出0和-1

按下一个按钮,我就会执行相同的
NSLog()
语句。这些值的异步更新似乎发生得相当快。但这些价值并不总是我所期望的

如果我打开手机的wifi,我会得到1(即
reachable==YES
)和2(即
networkReachabilityStatus==afnetworkreachabilitystatusreachabliveWiFi
)。这对我来说很有意义

但如果我关闭了手机的wifi,我会得到1(即
reachable==YES
)和1(即
networkReachabilityStatus==afnetworkreachabilitystatusreachablivewan
)。这对我来说没有意义。如果我运行其他查询,它最终会超时。那么,为什么可达性经理对我撒谎


我配置有问题吗?还是我对如何使用这个东西的理解有缺陷?

你有没有找到答案?因为我对IP地址上的managerForAddress有类似的问题。