0

我需要在 30 秒内每隔 0.025 秒打一次电话。这是我的 0.025 秒计时器。

NSTimer* myTimer = [NSTimer scheduledTimerWithTimeInterval: 0.025 target: self
                    selector: @selector(GetScreen:) userInfo: nil repeats:YES ];

如何将其限制为 30 秒的持续时间?

4

2 回答 2

0

如果您试图等到满足某些条件,请不要使用计时器来执行此操作。使用委托模式、通知/观察者或信号量等。

如果您想在 30 秒后调用一次GetScreen:(可能应该按照getScreen:正常的 Obj-C 约定),请使用以下命令:

[ NSTimer scheduledTimerWithTimeInterval:30.0 target:self selector:@selector( getScreen: ) userInfo:nil repeats:NO ] ;
于 2012-05-17T18:10:31.170 回答
0

如果您只想让它持续 30 秒,那么您只需让一个成员变量递增,直到它达到 30 秒,然后您关闭您的计时器:

CGFloat timerTotal_;

//initialize it where you create your timer
timerTotal_ = 0.0f;

//every time your GetScreen: is called
timerTotal_+= .025;

if(timerTotal_ > 30)
{
    [myTimer invalidate];
}
于 2012-05-17T18:11:39.667 回答