MJRefresh取消请求队列的问题

在使用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!

你可能感兴趣的:(MJRefresh取消请求队列的问题)