- - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
- {
- self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
- //開啟網絡狀況的監聽
- [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reachabilityChanged:) name:kReachabilityChangedNotification object:nil];
- self.hostReach = [Reachability reachabilityWithHostName:@"www.baidu.com"] ;
- [self.hostReach startNotifier]; //開始監聽,會啟動一個run loop
- self.window.rootViewController = self.tabBarController;
- [self.window makeKeyAndVisible];
- return YES;
- }
- //網絡鏈接改變時會調用的方法
- -(void)reachabilityChanged:(NSNotification *)note
- {
- Reachability *currReach = [note object];
- NSParameterAssert([currReach isKindOfClass:[Reachability class]]);
- //對連接改變做出響應處理動作
- NetworkStatus status = [currReach currentReachabilityStatus];
- //如果沒有連接到網絡就彈出提醒實況
- self.isReachable = YES;
- if(status == NotReachable)
- {
- UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"網絡連接異常" message:@"暫無法訪問書城信息" delegate:nil cancelButtonTitle:@"確定" otherButtonTitles:nil];
- [alert show];
- [alert release];
- self.isReachable = NO;
- }
- else
- {
- UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"網絡連接信息" message:@"網絡連接正常" delegate:nil cancelButtonTitle:@"確定" otherButtonTitles:nil];
- [alert show];
- [alert release];
- self.isReachable = YES;
- }
- }
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
//開啟網絡狀況的監聽
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reachabilityChanged:) name:kReachabilityChangedNotification object:nil];
self.hostReach = [Reachability reachabilityWithHostName:@"www.baidu.com"] ;
[self.hostReach startNotifier]; //開始監聽,會啟動一個run loop
self.window.rootViewController = self.tabBarController;
[self.window makeKeyAndVisible];
return YES;
}
//網絡鏈接改變時會調用的方法
-(void)reachabilityChanged:(NSNotification *)note
{
Reachability *currReach = [note object];
NSParameterAssert([currReach isKindOfClass:[Reachability class]]);
//對連接改變做出響應處理動作
NetworkStatus status = [currReach currentReachabilityStatus];
//如果沒有連接到網絡就彈出提醒實況
self.isReachable = YES;
if(status == NotReachable)
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"網絡連接異常" message:@"暫無法訪問書城信息" delegate:nil cancelButtonTitle:@"確定" otherButtonTitles:nil];
[alert show];
[alert release];
self.isReachable = NO;
}
else
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"網絡連接信息" message:@"網絡連接正常" delegate:nil cancelButtonTitle:@"確定" otherButtonTitles:nil];
[alert show];
[alert release];
self.isReachable = YES;
}
}
通過如上代碼,在應用程序的任何一個界面都可以使用下面的單例來判斷網絡是否連接
- AppDelegate *appDlg = (AppDelegate *)[[UIApplication sharedApplication] delegate];
- if(appDlg.isReachable)
- {
- NSLog(@"網絡已連接");//執行網絡正常時的代碼
- }
- else
- {
- NSLog(@"網絡連接異常");//執行網絡異常時的代碼
- }
