【发布时间】:2011-06-11 19:59:56
【问题描述】:
在寻找答案时,有些人注意到了这个问题,但没有人解决它。如果发生网络连接更改(即网络丢失),我只想通知用户。下面的代码有效,但我收到多个警报,通常是 3 个。我理解它可能发生的原因是因为为了准确性而进行了多次内部调用,但我似乎不能只显示一个警报,仅此而已。我尝试使用 BOOL 来检测警报是否已经显示(alertshowing),但它仍然没有帮助。 感谢您的想法。
- (void)applicationDidBecomeActive:(UIApplication *)application {
////NSLog(@"DidBecomeActive");
[self performSelector:@selector(getNetworkConnection) withObject:nil afterDelay:5.0];
}
-(void)getNetworkConnection
{
Reachability *r = [Reachability reachabilityWithHostName:@"www.google.com"];
NetworkStatus internetStatus = [r currentReachabilityStatus];
if ((internetStatus != ReachableViaWiFi) && (internetStatus != ReachableViaWWAN))
{
if (!self.alertShowing) {
UIAlertView *myAlert = [[[UIAlertView alloc] initWithTitle:@"No Internet Connection" message:@"This app require an internet connection via WiFi or cellular network to work." delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil] autorelease];
self.alertShowing = YES;
[myAlert show];
}
}
}
- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex
{
self.alertShowing = NO;
}
【问题讨论】:
-
我为这个问题的标签道歉,我不知道如何解决它。
-
使用标签下方的“编辑”小按钮来编辑您的问题。
-
我想通了,将观察者放置在 2 个位置并多次调用可达性是错误的。这周我一直盯着代码太久了。
标签: iphone networking connection uialertview