在我们进行数据请求的时候, 会用到下拉刷新, 有时候会遇到刷新就崩溃的难题, 主要是因为刷新的时候会重新调用数据源方法,在调用的时候正好和清空原来数据的地方冲突了,导致数组里面的内容为空,才出现崩溃的。也就是说你在数据尚未请求成功时 ,已经把数组清空了
错误的原因, 看下面代码
#pragma mark 开始进入刷新状态
- (void)headerRereshing {
_PageIndex = 1;
_PageSize = 10;
// 不可以在这进行清空
// [self.ModelArray removeAllObjects];
[self sendRequest];
}
应该放在正确的位置, 看下面改正过来的代码
[NetworkManager requestPOSTWithURLStr:urlStr paramDic:paramDic finish:^(id responseObject) {
if (_PageIndex == 1) {
[self.ModelArray removeAllObjects];
}
NSLog(@"在重新赋值之前, 清除原先数据, 记得判断_PageIndex是否为1");
[self.tableView reloadData];
[_tableView headerEndRefreshing];
[_tableView footerEndRefreshing];
} enError:^(NSError *error) {
[_tableView headerEndRefreshing];
[_tableView footerEndRefreshing];
}];
好了, 看完以后应该可以解决你的问题了!
// 转载请注明原地址呦!