第一种:
1。
- (void)viewDidLoad {
[superviewDidLoad];
[self.navigationControllersetNavigationBarHidden:NO];
self.navigationItem.title =@"";
ud = [NSUserDefaultsstandardUserDefaults];
NSDictionary *attributes=[NSDictionarydictionaryWithObjectsAndKeys:[UIColorwhiteColor],NSForegroundColorAttributeName,nil];
[self.navigationController.navigationBarsetTitleTextAttributes:attributes];
self.navigationController.navigationBar.barTintColor = [UIColor colorWithRed:245/255.0green:118/255.0blue:147/255.0alpha:1];
UIBarButtonItem *leftBarItem = [[UIBarButtonItemalloc] initWithTitle:@""style:UIBarButtonItemStylePlaintarget:selfaction:nil];
self.navigationItem.leftBarButtonItem = leftBarItem;
[[NSNotificationCenterdefaultCenter] addObserver:selfselector:@selector(reachabilityChanged:)name:kReachabilityChangedNotificationobject:nil];
Reachability *hostReach = [ReachabilityreachabilityWithHostName:@"www.apple.com"];
[hostReach startNotifier];
}
-(void)reachabilityChanged:(NSNotification *)notification{
Reachability *reach = [notification object];
if ([reach isKindOfClass:[Reachabilityclass]]) {
NetworkStatus status= [reach currentReachabilityStatus];
if (status == NotReachable) {
NSLog(@"没网络");
}else if (status ==ReachableViaWiFi){
NSLog(@"WI-FI");
}else if (status ==ReachableViaWWAN){
NSLog(@"4G");
}
}
}
- (void)dealloc
{
[[NSNotificationCenterdefaultCenter] removeObserver:selfname:kReachabilityChangedNotificationobject:nil];
}
2.第二种
- (void)viewDidLoad {
[super viewDidLoad];
[self isConnectionAvailable];
}
-(BOOL) isConnectionAvailable{
BOOL isExistenceNetwork = YES;
Reachability *reach = [ReachabilityreachabilityWithHostName:@"www.apple.com"];
switch ([reachcurrentReachabilityStatus]) {
caseNotReachable:
isExistenceNetwork = NO;
//NSLog(@"notReachable");
break;
caseReachableViaWiFi:
isExistenceNetwork = YES;
//NSLog(@"WIFI");
break;
caseReachableViaWWAN:
isExistenceNetwork = YES;
//NSLog(@"3G");
break;
}
if (!isExistenceNetwork) {
NSLog(@"断网");
[ud setObject:@"noNet"forKey:@"net"];
}else{
[ud setObject:@"hasNet"forKey:@"net"];
}
return isExistenceNetwork;
}
第三种:使用AFN
//在网络切换时,如果没登陆就执行自动登录
AFNetworkReachabilityManager *manger = [AFNetworkReachabilityManager sharedManager];
[manger setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
switch (status) {
case AFNetworkReachabilityStatusUnknown:
// NSLog(@"未知");
break;
case AFNetworkReachabilityStatusNotReachable:
// NSLog(@"没有网络");
break;
case AFNetworkReachabilityStatusReachableViaWWAN:
// NSLog(@"3G|4G");
// break;
case AFNetworkReachabilityStatusReachableViaWiFi:
{
// NSLog(@"WiFi");
//调用接口获取用户个人信息。如果可以获取到,则说明登录为超时。如果未获取到分为两种情况,第一种,已经登录过。第二种情况未登录过
// [self checkUserStatus];
if (!IS_LOGIN) {
[self autoLogin];
}
if (!_isInBackground) {
[self applicationDidBecomeActive:[UIApplication sharedApplication]];
}
}
break;
default:
break;
}
}];