我使用了 Andrew 修改后的Reachability类。
-(void)viewDidLoad
[[NSNotificationCenter defaultCenter] postNotificationName:kReachabilityChangedNotification object:nil];
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(checkNetworkStatus:) name:kReachabilityChangedNotification object:nil];
下载数据时,请关闭AirPort
。但checkNetworkStatus
没有被调用。我错过了什么。请帮我。这个问题让我疯了。提前谢谢。
答案 0 :(得分:10)
您是否告诉可达性实例开始广播通知?
Reachability *internetReachable = [Reachability reachabilityForInternetConnection];
// This will tell the notifier to start sending notifications
[internetReachable startNotifier];
答案 1 :(得分:2)
把它放在这个序列中
在您的视图中加载了
首先注册
然后
发布通知
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(checkNetworkStatus:) name:kReachabilityChangedNotification object:nil];
[[NSNotificationCenter defaultCenter] postNotificationName:kReachabilityChangedNotification object:nil];
答案 2 :(得分:2)
我有完全相同的问题,Apple的示例效果很好,所以我最终用Apple的版本替换Reachability类,一切都很好。这花了我差不多2个小时。
简单地从Apple的例子中替换你的Reachability.h,.m,一切都应该正常工作。
答案 3 :(得分:2)
这对我有用(斯威夫特):
func handleNetworkChange(notification:NSNotification) { ... }
NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("handleNetworkChange:"), name: kReachabilityChangedNotification, object: nil)
ReachabilityChecker = Reachability.reachabilityForInternetConnection()
ReachabilityChecker!.startNotifier()