2

我在viewWillAppear方法中调用了我的iphone应用程序中的一些网络服务(这是必要的)。

发生的事情是当我锁定设备然后解锁它时,它向我显示一个没有互联网连接的警报,这实际上是我在没有 Wifi 可用时使用的警报。

我不知道如何解决这个问题。请帮助我。提前致谢。

4

2 回答 2

0

根据设备锁定的时间长短,它可能需要重新获得与手机信号塔或 WiFi 接入点的连接。您无法围绕此硬件限制进行编码,但您可以适应您的应用程序处理它的方式。

一种解决方案是将所需的viewWillAppear操作存储在块 ivar 中,然后在执行块之前检查是否存在互联网连接。如果你有一个,然后像往常一样执行该块。如果您没有,请等待Reachability(也可以使用更现代的版本)通知以指示您再次建立连接,然后执行该块。请注意,如果用户在没有连接的区域中,则此块可能永远不会执行。

于 2013-05-15T13:53:59.733 回答
0

如果设备失去互联网连接,除了确保您在返回应用程序后重新检查外,您无能为力。您应该在 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];
于 2013-05-15T14:27:40.133 回答