1.通过URL获取JSON格式的数据 (hi,fashion中的应用实例)

- (void)viewDidLoad {

    [super viewDidLoad];

    

    //***网络请求

    [self startRequst];

    

    //***设置上拉刷新和下拉加载

    __weak FirstViewController *weakself = self;

    [self.collectionView addHeaderWithCallback:^{

        _pageCount = 0;

        

        [weakself startRequst];

    }];

    

    [self.collectionView addFooterWithCallback:^{

        weakself.pageCount ++;

        [weakself startRequst];

    }];

    

    [self.collectionView headerEndRefreshing];

}

 

 

- (void)startRequst{

    //创建网络请求

    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];

    manager.responseSerializer = [AFHTTPResponseSerializer serializer];

    NSString *url = [NSString stringWithFormat:@"http://api.nanyibang.com/campaign?age=24&campaignId=0&campaignType=jingxuan&page=%ld&version=1.2.7",  (long)self.pageCount];

    [manager GET:url parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject)

     {

         //进行数据解析

         [self dealDataFromNetWork:dic];

       } failure:^(AFHTTPRequestOperation *operation, NSError *error) {

         NSLog(@"网络请求失败");

     }];

}

 

//进行数据解析

- (void)dealDataFromNetWork:(NSMutableDictionary *)dataDic{

    

    if (self.pageCount == 0) {

        [self.dataSource removeAllObjects];

        [self.collectionView headerEndRefreshing];

    }else{

     

        [self.collectionView footerEndRefreshing];

    }

    NSMutableDictionary *nextDataDic = dataDic[@"data"];

    NSMutableArray *goodList = nextDataDic[@"itemDetail"];

    for (NSDictionary *goodDic in goodList) {

        Goods *good = [[Goods alloc]init];

        [good setValuesForKeysWithDictionary:goodDic];

        [self.dataSource addObject:good];

        [good release];

    }

    //刷新

    [self.collectionView reloadData];

    

}

 

2.通过URL获取非JSON格式的数据 (云暴直播中的应用实例)

- (void)viewDidLoad {

    [super viewDidLoad];

    

    

 //***网络请求

    [self startRequst];

 

    //集成下拉刷新操作

    [self.collectionView addHeaderWithTarget:self action:@selector(refreshingAction)];

    //定制下拉刷新的刷新内容

    self.collectionView.headerPullToRefreshText = @"下拉暴暴为您加载新内容";

    self.collectionView.headerReleaseToRefreshText = @"松手暴暴开始加载";

    self.collectionView.headerRefreshingText = @"暴暴正在努力加载";

    //开始刷新操作

    [self.collectionView headerBeginRefreshing];

}

 

 

 

//定义下拉刷新操作

- (void)refreshingAction{

    

    self.pageCount = 0;

    [self startRequst];

 

}

 

#pragma mark NetRequst

 

- (void)startRequst{

 

    NSString *str =[HTTPSTR stringByAppendingString:@"/index.php/Api/getindexinfo_api"];

    NSURL *url = [NSURL URLWithString:str];

    NSURLRequest *request = [NSURLRequest requestWithURL:url];

    AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];

    [operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {

        NSString *kengkengString = operation.responseString;

        

        //这里有个坑,因为接收到的字符串有(), 要进行处理,所以起名坑坑String 😢。

        NSString *kengString=[kengkengString stringByReplacingOccurrencesOfString:@"(" withString:@""];

        NSString *String = [kengString stringByReplacingOccurrencesOfString:@")"withString:@""];

        NSMutableDictionary *dic = [NSJSONSerialization JSONObjectWithData:[String dataUsingEncoding:NSUTF8StringEncoding] options:NSJSONReadingAllowFragments error:nil];

        

        //停止刷新操作

        [self.collectionView headerEndRefreshing];

        

        //清除原来的数据

        [self.dataSource removeAllObjects];

        [self.rollpic removeAllObjects];

 

        //进行数据解析

        [self dealDataFromNetWork:dic];

        

    }failure:^(AFHTTPRequestOperation *operation, NSError *error) {

        NSLog(@"发生错误!%@",error);

    }];

    NSOperationQueue *queue = [[NSOperationQueue alloc] init];

    [queue addOperation:operation];

    

}

 

//进行数据解析

- (void)dealDataFromNetWork:(NSMutableDictionary *)dataDic{

    

    

       [self.collectionView headerEndRefreshing];

    

    NSMutableArray *recommend = dataDic[@"recommend"];

    for (NSDictionary  *modelList in recommend) {

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

        [model setValuesForKeysWithDictionary:modelList];

        [self.dataSource addObject: model];

        

    }

    

    NSMutableArray *picArray = dataDic[@"rollpic"];

    for (NSDictionary  *picList in picArray) {

        NSString *picpath = picList[@"picpath"];

        NSString *picStr = [HTTPSTR stringByAppendingString:picpath];

        [self.rollpic addObject: picStr];

     

      }

  

    //刷新

    [self.collectionView reloadData];

    

}

posted on 2016-01-07 11:10  i兮兮  阅读(290)  评论(0编辑  收藏  举报