正如标题所述,我有一个 while 循环,它将执行直到满足特定条件,或者直到 5 秒过去。
解决这个问题的最佳方法是什么?我看过一些关于 NSTimer 的简单教程,但在我看来,在 NSTimer 中触发的选择器无论如何都会在指定的时间间隔后执行。我只需要在不满足条件时执行它...
最佳答案
只需创建一个 NSTimer 计划操作来存储计时器,如果您达到了想要实现的目标,请停用此计时器,这样它就不会触发该操作。
基本上:
NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:10 target:self selector:@selector(yourAction) userInfo:nil repeats:NO];
some code
//for deactivating the timer
[timer invalidate];
timer = nil;
您可以使用以下命令在主线程上启动 NSTimer(以确保上述代码正常工作):
[self performSelectorOnMainThread:@selector(startTimerMethod) withObject:someOrNoObject waitUntilDone:NO];
关于iOS执行循环直到满足指定时间的特定条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12299446/