调用API,直到给出所需的答案

时间:2016-02-17 11:26:07

标签: ios uitableview

我会尽力解释我的问题。

所以想法是刷新tableview数据。我已经设置了一个刷新来刷新。

当触发刷新触发时,我需要进行基本API调用,将值设置为1.将si值设置为1将使服务器执行操作。要知道服务器何时完成,我必须重复调用它(使用其他非常轻的API调用,我可以触发尽可能多的时间)并检查设置为1的值是否回到0。

所以我需要一个块调用setValue,在其中我需要一个其他块调用getValue。我需要"运行"第二个块(getValue)需要很多时间,直到我得到正确的答案,然后停止第二个块调用,最后更新我的tableView。

我已经尝试了很多东西......我不想使用NSTimer。 我开始在这里失去理智......

提前谢谢你:)

1 个答案:

答案 0 :(得分:0)

请注意:重复调用API不是最好的方法,这会导致电池耗尽。

但为了找到解决方案,您可以按照以下步骤进行操作。

首先在声明中设置BOOL标志。

BOOL isResponceCameForFirstPart;

然后您可以从viewDidLoad

调用第一个函数
- (void)viewDidLoad { 
      isResponceCameForFirstPart = NO;
     [self callAPItogetFirstStep];
     [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.
     }

现在,您需要以递归方式调用API,直到获得所需的响应。

- (void)callAPItogetFirstStep{
    // Call the API here and get the response here.
    if(desireAnswer){
        isResponceCameForFirstPart = YES;
        [self  callAPItogetSecondStep];
  }else{
         [self callAPItogetFirstStep];
    }  
  }

最后,您可以在获得所需的回复后调用第二步。

- (void)callAPItogetSecondStep{
}