iOS 可达性无效

iOS Reachability not working

我在我的应用程序中使用了流行的可达性框架 (https://github.com/tonymillion/Reachability),并且我正在 真实设备 上测试可达性(尽管它们的行为完全相同在模拟器上也是如此)。

这是我的代码(我强烈引用 Reachability 实例作为我的应用程序委托中的实例变量):

@implementation AppDelegate{
    Reachability *reachability;
}


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    [...]

    //this code is reached and called with no issues.

    reachability = [Reachability reachabilityWithAddress:@"myreachabledomain.com"];
    [reachability startNotifier];
    return YES;
}

在其他地方(同样,强烈引用):

[[NSNotificationCenter defaultCenter] addObserver:self 
              selector:@selector(reachabilityDidChange:)
              name:kReachabilityChangedNotification object:nil];

[...]

-(void)reachabilityDidChange:(NSNotification*)note{
    NSLog(@"hello");
}

但是,我从来没有看到 "hello"(或命中断点)。我的域完全可以访问。我通过永久关闭蜂窝数据来切换 phone 的互联网连接,然后 运行 我的应用程序和切换 WiFi(是的,它连接到 WiFi 没有问题,我可以浏览互联网)。

我做错了什么? (我在 iPhone 7 Plus,iOS 10.3.1)

更新:

我来晚了一点,但我刚试过,遇到了同样的问题。

我尝试使用 [Reachability reachabilityWithHostName:@"google.com"]; 而不是 reachabilityWithAddress,它按预期工作。

我无法解释为什么这现在有效,但希望您可以使用此选项。