我在viewWillAppear
方法中调用了我的iphone应用程序中的一些网络服务(这是必要的)。
发生的事情是当我锁定设备然后解锁它时,它向我显示一个没有互联网连接的警报,这实际上是我在没有 Wifi 可用时使用的警报。
我不知道如何解决这个问题。请帮助我。提前致谢。
我在viewWillAppear
方法中调用了我的iphone应用程序中的一些网络服务(这是必要的)。
发生的事情是当我锁定设备然后解锁它时,它向我显示一个没有互联网连接的警报,这实际上是我在没有 Wifi 可用时使用的警报。
我不知道如何解决这个问题。请帮助我。提前致谢。
根据设备锁定的时间长短,它可能需要重新获得与手机信号塔或 WiFi 接入点的连接。您无法围绕此硬件限制进行编码,但您可以适应您的应用程序处理它的方式。
一种解决方案是将所需的viewWillAppear
操作存储在块 ivar 中,然后在执行块之前检查是否存在互联网连接。如果你有一个,然后像往常一样执行该块。如果您没有,请等待Reachability(也可以使用更现代的版本)通知以指示您再次建立连接,然后执行该块。请注意,如果用户在没有连接的区域中,则此块可能永远不会执行。
如果设备失去互联网连接,除了确保您在返回应用程序后重新检查外,您无能为力。您应该在 AppDelegate.m 方法中执行此操作:
-(void)applicationWillEnterForeground:(UIApplication *)application
然后发布通知 (1) 并在需要此信息的类中添加观察者 (2)。例如:
(1) [[NSNotificationCenter defaultCenter] postNotificationName:kConnectionChangedNotification object:nil];
(2) [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(methodToCallIfConnectionChanged:) name:kConnectionChangedNotification object:nil];