之前用Reachability只能在发起请求是检测网络状态;
因为项目中使用的UDP,要实时监控网络变化(WiFi变成手机网络,或者断网,之前互相切换要做出相应操作),后来发现一个强大的库RealReachability;下面大致使用方法
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[GLobalRealReachability startNotifier];
[self addReachabilityNotifacation];
return YES;
}
- (void)addReachabilityNotifacation {
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(networkChanged:)
name:kRealReachabilityChangedNotification
object:nil];
}
- (void)networkChanged:(NSNotification *)notification
{
RealReachability *reachability = (RealReachability *)notification.object;
ReachabilityStatus status = [reachability currentReachabilityStatus];
ReachabilityStatus previousStatus = [reachability previousReachabilityStatus];
if (status == RealStatusNotReachable)
{
NSLog(@"Network unreachable!");//@"Network unreachable!";
}
if (status == RealStatusViaWiFi)
{
NSLog(@"Network wifi! Free!");//@"Network wifi! Free!";
}
if (status == RealStatusViaWWAN)
{
//@"Network WWAN! In charge!";
}
}
RealReachability库可以在github上直接搜索。