我正在使用AFNetworking 2.0进行网络通话。我使用下面的代码来实现可达性。我的问题是,当我打开应用程序时,始终显示“未连接”警报。似乎应用程序需要一段时间才能连接到网络,并且滞后导致警报弹出。有没有什么办法解决这一问题?我不希望每次都弹出“未连接”警报并使用户感到困惑。
[[AFNetworkReachabilityManager sharedManager] setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
NSLog(@"Reachability: %@", AFStringFromNetworkReachabilityStatus(status));
switch (status) {
{case AFNetworkReachabilityStatusNotReachable:
NSLog(@"No Internet Connection");
UIAlertView *message = [[UIAlertView alloc] initWithTitle:@"Not connected"
message:@"You have no network connection"
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[message show];
}
break;
{case AFNetworkReachabilityStatusReachableViaWiFi:
NSLog(@"WIFI");
}
break;
{case AFNetworkReachabilityStatusReachableViaWWAN:
NSLog(@"4G");
}
break;
default:
NSLog(@"Unkown network status");
break;
}
}];
[[AFNetworkReachabilityManager sharedManager]startMonitoring];
if ([[AFNetworkReachabilityManager sharedManager] isReachable] == NO) {
UIAlertView *message = [[UIAlertView alloc] initWithTitle:@"Not connected"
message:@"You're not connected to the internet. Please connect via WiFi or data plan"
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[message show];
//this shows all the time - why?
}
答案 0 :(得分:0)
将此代码放入此方法AppDelegate
的{{1}}中。它只会显示一次消息。
didFinishLaunchingWithOptions
答案 1 :(得分:0)
因为AFNetworkReachabilityManager通过通知刷新其状态。 所以当你打电话时
[AFNetworkReachabilityManager sharedManager] isReachable]
立即启动监控后,状态尚未准备就绪。