AFN请求的 数据传递

先说需求

  在 点击cell的时候  加载网络数据  ,  数据加载成功后 再, 跳转控制器. 

  原先代码  

             

  // 加载数据

         [self loadPriceData];

 // 打印为空

       NSLog(@"%@",self.priceTypeAry);

// 跳转控制器

         [selfpushController:areaCtrl dataAry:self.priceTypeAryctrlTitle:@"期望价格"];

问题是    [self loadPriceData]; 这个方法是调用 AFN 请求数据, afn 默认是异步的, 也就是 ,数还没准备好, 就跳转了.

  

 解决办法是  用一个block 将跳转的 行为 放到block中, 在AFN 获取数据完成后调用 block.

    

 // 调用数据

       [selfloadPriceDataSuccess:^{

      // 跳转行为

           [selfpushController:areaCtrl dataAry:self.priceTypeAryctrlTitle:@"期望价格"];

       }];


 AFN请求

  

-(void)loadPriceDataSuccess:(void (^)())successData{

    

    

    NSString *urlStr =

    NSMutableDictionary *parameter = [NSMutableDictionarydictionary];

    parameter[@"deviceType"] = 

    parameter[@"deviceID"] = 

    parameter[@"token"] = 

    parameter[@"version"] =

    

    [IWHttpToolgetWithURL:urlStr params:parameter success:^(id json) {

        

       NSDictionary *responseData = (NSDictionary *)json;

        

     if ([responseData[@"success"isEqual: @"true"] ) {

//            

           NSDictionary *data = responseData[@"data"];

          NSArray *priceType = data[@"priceType"];

          // 数组转模型

            NSMutableArray *mAry = [NSMutableArrayarray];

           for (NSDictionary *dicin priceType) {

              entrustPriceType *priceType = [entrustPriceTypeobjectWithKeyValues:dic];

               [mAryaddObject:priceType];

            }

         

              self.priceTypeAry = mAry.copy;


    //成功获得数据 , 进行跳转行为.

         if (self.priceTypeAry.count >0) {

              successData();

          }

       

         

         NSLog(@"jiazwc");

          

    }

        }failure:^(NSError *error) {

           NSLog(@"%@",error);

        }];

    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值