ios自动刷新--数据请求

AFNetworkReachabilityManager 这个类是AFN专门用来监听网络状态的,而且是实时监听,只要网络状态发生变化,会立马知道.

所以在需要实时刷新的界面调用一下监听的方法.

//  ResultsViewController.m

@property (nonatomic, assign) BOOL isRequestFinish;//数据请求是否完毕

- (void)viewDidLoad {

[super viewDidLoad];

_isRequestFinish = NO;//刚进入界面是没有完成请求数据的

//监听网络状态

[self AFNReachability];

//请求数据,这里就不用请求数据了

//    [self requsetData];

}

//监听网络状态

-(void)AFNReachability {

//1.创建网络监听管理者

AFNetworkReachabilityManager *manager = [AFNetworkReachabilityManager sharedManager];

//2.监听网络状态的改变

/*

AFNetworkReachabilityStatusUnknown          = 未知

AFNetworkReachabilityStatusNotReachable    = 没有网络

AFNetworkReachabilityStatusReachableViaWWAN = 3G

AFNetworkReachabilityStatusReachableViaWiFi = WIFI

*/

if (!_isRequestFinish) {

//如果没有请求完成就检测网络

[manager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {

switch (status) {

case AFNetworkReachabilityStatusUnknown:

NSLog(@"未知网络");

break;

case AFNetworkReachabilityStatusNotReachable:

NSLog(@"没有网络");

break;

case AFNetworkReachabilityStatusReachableViaWWAN:

NSLog(@"3G网络");//不是WiFi的网络都会识别成3G网络.比如2G/3G/4G网络

[self requsetData];

break;

case AFNetworkReachabilityStatusReachableViaWiFi:

NSLog(@"WIFI网络");

[self requsetData];

break;

default:

break;

}}];

}

//3.开始监听

[manager startMonitoring];

}

//请求数据

- (void)requsetData {

[self.dataArray removeAllObjects];

[self.listTableView reloadData];

//加载菊花

MBProgressHUD *myHUD = [MBProgressHUD showHUDAddedTo:self.view animated:YES];

myHUD.labelText = @"奋力加载中...";

[myHUD show:YES];

PhoneModel *colorModel = [self.searchModelArray lastObject];

NSString *IDStr = colorModel.ID;

NSString *urlStr = [NSString stringWithFormat:@"https://www.yilaitong.net/?m=Home&c=Shop&a=shop&cid=%@", IDStr];

KMyLog(@"网址:%@", urlStr);

[NewNetWorkManager requestGETWithURLString:urlStr parDic:nil finish:^(id responseObject) {

//请求完成

_isRequestFinish = YES;

NSArray *responese = (NSArray *)responseObject;

for (NSDictionary *dic in responese) {

ResultModel *model = [[ResultModel alloc] init];

[model setValuesForKeysWithDictionary:dic];

[self.dataArray addObject:model];

}

[self.dataArray sortUsingSelector:@selector(compareModel:)];

[self.listTableView reloadData];

if (self.dataArray.count == 0) {

//没有数据

UIAlertView *alertView =  [[UIAlertView alloc] initWithTitle:@"目前该机型没有数据" message:@"" delegate:self cancelButtonTitle:@"取消" otherButtonTitles:nil, nil];

[alertView show];

}

} conError:^(NSError *error) {

NSLog(@"请求失败了:%@", error);

//请求失败

UIAlertView *alertView =  [[UIAlertView alloc] initWithTitle:@"网络不给力" message:@"请刷新" delegate:self cancelButtonTitle:@"取消" otherButtonTitles:nil, nil];

[alertView show];

}];

[myHUD hide:YES afterDelay:0];

}

你可能感兴趣的:(ios自动刷新--数据请求)