正如标题所述,我有一个 while 循环将执行,直到满足特定条件,或者直到 5 秒过去。
解决这个问题的最佳方法是什么?我已经看过一些关于 的简单教程NSTimer
,但在我看来,NSTimer
无论如何触发的选择器都将在指定的时间间隔后执行。如果条件不满足,我只需要执行它......
正如标题所述,我有一个 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];