我会尽力解释我的问题。
所以想法是刷新tableview数据。我已经设置了一个刷新来刷新。
当触发刷新触发时,我需要进行基本API调用,将值设置为1.将si值设置为1将使服务器执行操作。要知道服务器何时完成,我必须重复调用它(使用其他非常轻的API调用,我可以触发尽可能多的时间)并检查设置为1的值是否回到0。
所以我需要一个块调用setValue,在其中我需要一个其他块调用getValue。我需要"运行"第二个块(getValue)需要很多时间,直到我得到正确的答案,然后停止第二个块调用,最后更新我的tableView。
我已经尝试了很多东西......我不想使用NSTimer。 我开始在这里失去理智......
提前谢谢你:)
答案 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{
}