0

正如标题所述,我有一个 while 循环将执行,直到满足特定条件,或者直到 5 秒过去。

解决这个问题的最佳方法是什么?我已经看过一些关于 的简单教程NSTimer,但在我看来,NSTimer无论如何触发的选择器都将在指定的时间间隔后执行。如果条件不满足,我只需要执行它......

4

1 回答 1

1

只需创建一个 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];
于 2012-09-06T11:56:27.600 回答