0
寻找答案时,一些人注意到了这个问题,但没有人解决它。我只是想让用户知道是否发生了网络连接更改(即网络丢失)。下面的代码工作,但我得到多个警报,通常是3.我明白为什么它可能发生的原因是因为多个内部呼叫的准确性,但我似乎无法只有一个警报显示,那就是。我试图用BOOL来检测警报是否已经显示(alertshowing),但它仍然没有帮助。 感谢您的想法。iPhone多次警报通过网络连接检查调用
- (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;
}
我的道歉,对这个问题进行了标记,我不知道如何解决它。 – lionz 2011-06-11 20:12:41
使用标签下方的小编辑按钮编辑您的问题。 – PengOne 2011-06-11 20:47:17
我想出了它,并且将观察者放置在两个点中并多次调用可达性是错误的。本周我一直在盯着代码太久。 – lionz 2011-06-11 23:25:40