嗨,我正在使用 tony Millions 可达性类。
https://github.com/tonymillion/Reachability
直到今天我一直在使用这个没有问题。
在任何 6.1 和 7.0 的 IOS 模拟器中,这一切都很好,但如果我部署到实际的 IOS 设备,可达性块不会被触发。在模拟器中一切正常,我在调试窗口中得到 ns 日志“已连接”或没有,代码工作正常。
在不修改代码的情况下,在设备上运行时没有调试消息并且代码不会运行。它也不会产生错误。
自从上周在设备上运行以来,我实际上并没有更改任何代码。
我已将 xcode 升级到最新版本。
如果它在模拟器和设备上不起作用,我会理解代码存在问题,但因为它在模拟器上运行,而不是在设备上运行(在运行 IOS 6.1 的 iPad 和运行 IOS 7.02 的 iPhone 上尝试过 - 两种设备的行为同样)。
代码在下面剪断了它。
有任何想法吗?
// Checks if we have an internet connection or not
- (void)testInternetConnection
{
NSLog(@"before");
self.reachable= [Reachability reachabilityWithHostname:@"www.google.com"];
NSLog(@"after");
// Internet is reachable
self.reachable.reachableBlock = ^(Reachability*reach)
{
NSLog(@"connected");
//on simulator we get here and connected logged in debug window, but NOT on
//devices
// Update the UI on the main thread
dispatch_async(dispatch_get_main_queue(), ^{
[self reachabilityChanged:YES];
});
[self.reachable stopNotifier];
};
// Internet is not reachable
self.reachable.unreachableBlock = ^(Reachability*reach)
{
NSLog(@"no connectiont");
// Update the UI on the main thread
dispatch_async(dispatch_get_main_queue(), ^{
[self reachabilityChanged:NO];
});
[self.reachable stopNotifier];
};
[self.reachable startNotifier];
}