我需要在30秒的时间内每隔.025秒拨打一次电话。这是我的.025秒计时器。
NSTimer* myTimer = [NSTimer scheduledTimerWithTimeInterval: 0.025 target: self
selector: @selector(GetScreen:) userInfo: nil repeats:YES ];
如何将此限制为30秒?
答案 0 :(得分:0)
如果您要等到某个条件满足,请不要使用计时器来执行此操作。使用委托模式,或通知/观察者或信号量等。
如果您想在30秒后调用GetScreen:
(通常可能是getScreen:
正常的Obj-C惯例),请使用:
[ NSTimer scheduledTimerWithTimeInterval:30.0 target:self selector:@selector( getScreen: ) userInfo:nil repeats:NO ] ;
答案 1 :(得分: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];
}