网络实时检测,需用到Reachability,
ios程序需要用到网络检测,有些程序是刚启动时检测一次,而有些则从头到尾检测网络状态。
Reachability *reachability;
//处理连接改变后的情况 //对连接改变做出响应的处理动作。
- (void) updateInterfaceWithReachability: (Reachability*) curReach
{
NetworkStatus status = [curReach currentReachabilityStatus];
if(status ==NotReachable) {
UIAlertView*alertView = [[UIAlertView alloc]initWithTitle:@"温馨提示"
message:@"网络连接失败,请检查网络"
NotReachable, // 不可到达
ReachableViaWiFi, // 通过WiFi可到达
ReachableViaWWAN // 通过无线广域网可到达(WWAN,即Wireless Wide Area Network,无线广域网。)
delegate:nil
cancelButtonTitle:@"确定"
otherButtonTitles:nil];
[alertView show];
[alertView release];
}else{
NSLog(@"connect with the internet successfully");
}
}
// 连接改变
- (void) reachabilityChanged: (NSNotification* )note
{
Reachability* curReach = [note object];
NSParameterAssert([curReach isKindOfClass: [Reachability class]]);
[self updateInterfaceWithReachability: curReach];
}
-(void)startNotificationNetwork{
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reachabilityChanged:) name:kReachabilityChangedNotification object:nil];
reachability=[[Reachability reachabilityWithHostName:@”www.baidu.com”] retain];
[reachability startNotifier];
}
只需在AppDelegate中调用startNotificationNetwork这个方法即可,如[self startNotificationNetwork];
参考:
http://www.cnblogs.com/SnailFish/archive/2012/09/18/SCNetworkReachability.html