objective-c - ios 用MJRefresh第三方库上拉加载数据只能加载前两页数据

 欢迎bm访问老年人空间 发布于 2022-10-27 13:33

求助!开发环境xcode8,我的数据库中有两千多条数据,我在服务的设置的每页200条,我用MJRefresh库实现上拉加载数据只加载前2页数据,再上拉后面就不加载了,请各位老师给看看代码不知是不是逻辑上有错误~!谢谢~!!
伪代码如下:

SSTQuanDataModel.h

@interface SSTQuanDataModel : NSObject
...
...
//总页数
@property(nonatomic,assign)NSInteger total_num;
//当前页码
@property(nonatomic,assign)NSInteger currentPage;
...
@end

SSTQuanZhiBoViewController.m:

...
#impor “SSTQuanDataModel”
#import 
#import 
@interface SSTQuanViewController ()

@property(nonatomic,strong)UICollectionView *collectionVC;
@property(nonatomic,strong)NSMutableArray *quanData;
@property(nonatomic,strong)AFHTTPSessionManager *manager;
....
@end

@implementation SSTQuanViewController
....

//上拉加载数据
-(void)setupReFresh{ 
    
  //上拉加载数据
 self.collectionVC.mj_footer=[MJRefreshBackFooter footerWithRefreshingTarget:self refreshingAction:@selector(loadMoreData)];

}
//上拉刷新加载更多数据
-(void)loadMoreData{
    SSTQuanDataModel *sd=[[SSTQuanDataModel alloc]init];
    sd.currentPage=1;
    
    NSString *url =[NSString stringWithFormat:@"http://127.0.0.1:8000/api/v1/coupon/?page=%ld",++sd.currentPage] ;
    
    [self.manager GET:url parameters:nil progress:^(NSProgress * _Nonnull downloadProgress) {
        
    } success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
        
        NSArray *add=[SSTQuanDataModel mj_objectArrayWithKeyValuesArray:responseObject[@"results"]];
        
        //下拉刷新后将第二页的数据添加到self.quanData的后面
        [self.quanData addObjectsFromArray:add];
        [self.collectionVC reloadData];
       
       
        //停止刷新表格
        if(self.quanData.count==sd.total_num){
            [self.collectionVC.mj_footer endRefreshingWithNoMoreData];
            
        }

        
    } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
        //显示失败信息
        [SVProgressHUD showErrorWithStatus:@"数据加载失败!"];
    }];
}

....
@end

已找到解决办法:

感谢 @空心菜舅舅 确实是自己在loadMoreData方法中sd.currentPage=1 这句表达式的问题,这句应该在第一次加载网络请求的时候设置,自己的疏忽,非常感谢各位兄台不吝指教~!

3 个回答
  • 请问这里我得如何修改好呢??

    2022-11-12 01:41 回答
  • 肯定是逻辑问题跟MJ没关系,MJ只是控件而已

    2022-11-12 01:41 回答
  • sd.currentPage=1;你每次loadMoreData加载数据的时候都初始化为第一页了,所以总是出来第二页的数据…………

    2022-11-12 01:41 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有