在使用MJRefresh 和AFNetWorking的时候遇到一个问题,在发送新的请求之前 取消上一个请求队列。
//添加MJrefresh到 tableViewHeader
__block MyViewController *weakSelf = self;
[_tableView addLegendHeaderWithRefreshingBlock:^{
NSString *searchKey = weakSelf.searchBar.text;
weakSelf.page = 1;
NSDictionary *dict = @{@"sKeyWord":searchKey,@"i_Company":@"1",@"i_L oginID":@"84",@"PageIndex":@(weakSelf.page)};
[weakSelf refreshUIwithParmenters:dict];
}];
[_commandManager cancelRequest];//取消上一个请求队列
[self.tableView.header endRefreshing]; //让MJ停止刷新
[self.tableView.header beginRefreshing];//开始新的刷新
在这个过程中 新的请求并没有执行。
研究了一下,发现MJ在 endRefreshing 有一个动画时间,在这个过程中,[self.tableView.header beginRefreshing] 没有执行。
改成:
[self.tableView.header endRefreshing]; //让MJ停止刷新
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.45F * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
[self.tableView.header beginRefreshing];
});//开始新的刷新
等待的时间可以自己试试。这里给的是0.45s.
OK!