#import <UIKit/UIKit.h>
#import "Reachability.h" (需要到导入第三Reachability库)
@class ViewController;
@class AppDelegate;
@protocol AppDelegateDelegate <NSObject>
- (void)update:(AppDelegate*)appDelegate;
@end
@interface AppDelegate : UIResponder <UIApplicationDelegate>
@property (strong, nonatomic) UIWindow *window;
@property (assign, nonatomic) NetworkStatus netstatus;
@property (assign, nonatomic) BOOL isConnected;
@property (retain, nonatomic) Reachability *hostReach;
@property (assign, nonatomic) id<AppDelegateDelegate>delegate;
@end
#import "AppDelegate.h"
#import "ViewController.h"
@implementation AppDelegate
- (void)dealloc
{
[_window release];
[_hostReach release];
[super dealloc];
}
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
_isConnected = NO;
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(ReachabilityChanged:) name:kReachabilityChangedNotification object:nil];
self.hostReach = [Reachability reachabilityWithHostName:@"www.baidu.com"];
[_hostReach startNotifier];
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
// Override point for customization after application launch.
ViewController *viewController = [[ViewController alloc] init];
UINavigationController *navigationController = [[UINavigationController alloc]initWithRootViewController:viewController];
[viewController release];
self.window.rootViewController = navigationController;
[navigationController release];
[self.window makeKeyAndVisible];
return YES;
}
//网络监听事件
- (void)ReachabilityChanged:(NSNotification*)notice
{
NSString *connectionKind = nil;
Reachability *curReach = [notice object];
NSParameterAssert([curReach isKindOfClass:[Reachability class]]);
_netstatus = [curReach currentReachabilityStatus];
switch (_netstatus) {
case NotReachable:
connectionKind = @"当前没有网络连接\n请查看你的网络设置";
_isConnected = NO;
break;
case ReachableViaWiFi:
connectionKind = @"当前使用的网络是WIFi";
_isConnected = YES;
break;
case ReachableViaWWAN:
connectionKind = @"当前使用的网络是WWAN";
_isConnected = YES ;
break;
default:
break;
}
UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"提醒" message:connectionKind delegate:self cancelButtonTitle:@"OK" otherButtonTitles: nil];
[alert show];
[alert release];
if (_delegate && [_delegate respondsToSelector:@selector(update:)]) {
[_delegate performSelector:@selector(update:) withObject:self];
}
}
@end