无法触发 AppDelegate 中可达性的观察者
Posted
技术标签:
【中文标题】无法触发 AppDelegate 中可达性的观察者【英文标题】:Observer for reachability in AppDelegate cannot be triggered 【发布时间】:2012-07-11 18:37:10 【问题描述】:- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(myReachabilityDidChangedMethod)
name:kReachabilityChangedNotification
object:nil];
Reachability *reachability;
reachability = [Reachability reachabilityForInternetConnection];
[reachability startNotifier];
我的 AppDelegate 中有上述代码块,用于创建可达性观察者,旨在通过应用程序触发 myReachabilityDidChangedMethod。
但是,无法触发位于 AppDelegate 中的 myReachabilityDidChangedMethod,当我打开或关闭我的 wifi 时,我在模拟器和 ipad 上都对其进行了测试,但两者都没有任何响应。
【问题讨论】:
【参考方案1】:要触发您的方法,您需要发布通知:
[[NSNotificationCenter defaultCenter] postNotificationName:@"kReachabilityChangedNotification" object:nil];
顺便说一句,如果我没记错的话,当你注册你的通知时,kReachabilityChangedNotification 应该写成一个字符串@"kReachabilityChangedNotification"
【讨论】:
Reachability 类本身不应该自动发布通知吗? @Shing,不会的。用户必须在需要时将项目显式添加到通知中。还要确保在应用退出时删除通知。使用此删除所有通知:[[NSNotificationCenter defaultCenter] removeObserver:self];
或删除特定通知:[[NSNotificationCenter defaultCenter] removeObserver:self name:kReachabilityChangedNotification object:nil];
以上是关于无法触发 AppDelegate 中可达性的观察者的主要内容,如果未能解决你的问题,请参考以下文章