iphone可达性问题

时间:2010-02-04 19:32:43

标签: iphone reachability

我的应用需要互联网连接,因此在ApplicationDelegate中,在applicationDidFinishLaunching上运行以下内容:

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

hostReach = [[Reachability reachabilityWithHostName: @"www.apple.com"] retain];
[hostReach startNotifer];
[self updateInterfaceWithReachability: hostReach];

但由于某种原因,这似乎是两次发射,因为记录的内容如下:

2010-02-04 14:25:48.004 myApp[201:207] Reachability Flag Status: -- ------- networkStatusForFlags
2010-02-04 14:25:48.240 myApp[201:207] STATUS: Access Not Available
2010-02-04 14:25:48.499 myApp[201:207] Reachability Flag Status: -- ------- networkStatusForFlags
2010-02-04 14:25:48.517 myApp[201:207] STATUS: Access Not Available

哪个好,它正在工作,但我有一条警告信息通知用户没有连接,它会弹出两次......

为什么可达性通知器会触发两次?

1 个答案:

答案 0 :(得分:0)

不知道为什么会弹出两次。您是否尝试过评论startNotifier的来电?它可能会在reachabilityWithHostName:方法中进行初步检查。

这可能是一种解决方法是最合适的修复方法,例如:

static bool userNotifiedOfReachability = NO;

...

- (void)updateInterfaceWithReachability:(Reachbility *)reachability {
    if (!userNotifiedOfReachability) {
        // Notify User

        ...

        userNotifiedOfReachability = YES;
    }
}

这适用于“请稍后再次尝试启动应用”消息。