繁体   English   中英

iPhone可达性问题

[英]iphone Reachability issues

我的应用程序需要Internet连接,因此在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

可以正常工作,这很好,但是我有一条警报消息通知用户没有连接,它弹出两次...

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

不知道为什么它会弹出两次。 您是否尝试注释掉对startNotifier的调用? 它可能会对reachabilityWithHostName:方法进行初步检查。

在这种情况下,变通办法是最合适的解决方法,例如:

static bool userNotifiedOfReachability = NO;

...

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

        ...

        userNotifiedOfReachability = YES;
    }
}

这对于“请稍后再尝试启动该应用程序”消息来说是适当的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM