在Reachability中没有调用通知

时间:2011-07-28 13:14:37

标签: iphone ios4 reachability

我使用了 Andrew 修改后的Reachability类。

-(void)viewDidLoad

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

下载数据时,请关闭AirPort。但checkNetworkStatus没有被调用。我错过了什么。请帮我。这个问题让我疯了。提前谢谢。

4 个答案:

答案 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()