代码改变世界

iOS中判断网络是否联网

2013-07-06 21:10  甘超波  阅读(7028)  评论(0编辑  收藏  举报
#import "AppDelegate.h"

#import "ViewController.h"
#import "Reachability.h"


@interface AppDelegate (){
}
@property (nonatomic,retain)Reachability *res;

@end

@implementation AppDelegate

- (void)dealloc
{
    [_window release];
    [_res release];
    [_viewController release];
    [super dealloc];
}

-(void)change:(NSNotificationCenter *)notify{//当网络发生变化的时候,都会触发这个事件
    NSLog(@"%@",notify);
}

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    

//添加网络变化的通知
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(change:) name:kReachabilityChangedNotification object:nil];
    self.res=[Reachability reachabilityWithHostName:@"http://www.baidu.com"];
    [self.res startNotifier];//开始监听网络请求的变化
    
    
    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
    // Override point for customization after application launch.
    self.viewController = [[[ViewController alloc] initWithNibName:@"ViewController" bundle:nil] autorelease];
    self.window.rootViewController = self.viewController;
    [self.window makeKeyAndVisible];
    return YES;
}
、-(void)viewWillAppear:(BOOL)animated{
    [super viewWillAppear:animated];
    if([Reachability reachabilityForLocalWiFi].currentReachabilityStatus==NotReachable&&[[Reachability reachabilityForInternetConnection] currentReachabilityStatus]==NotReachable){
        NSLog(@" not  work");
    }
 
}

-(void)PdNetwork{
    Reachability *r=[Reachability reachabilityWithHostName:@"http://www.baidu.com"];
    switch ([r currentReachabilityStatus]) {
        case NotReachable:
            NSLog(@"not work");
            break;
        case ReachableViaWiFi:
            NSLog(@"wifi");
            break;
        case ReachableViaWWAN:{
            NSLog(@"wan");
        }
            break;
        default:
            break;
    }
}