Rah*_*yas 29 xcode objective-c nstimer invalidation iphone-sdk-3.0
我有这样的事情:
NSTimer* timer = [NSTimer scheduledTimerWithTimeInterval:1.0
target:self
selector:@selector(updateCountdown)
userInfo:nil
repeats:YES];
Run Code Online (Sandbox Code Playgroud)
我正在使用此计时器更新标签的文本.在某种情况下我不想检查定时器是否处于活动状态,然后使定时器无效.我的问题是我怎么发现计时器是否有效?
Kev*_*vin 69
当一个非重复计时器触发时,它会将其标记为无效,因此您可以在取消它之前检查它是否仍然有效(当然还可以自行解决它).
if ( [timer isValid] && yourOtherCondition){
[timer invalidate], timer=nil;
}
Run Code Online (Sandbox Code Playgroud)
在您的情况下,您有一个重复计时器,因此它将始终有效,直到您采取某些操作使其无效.看起来在这种情况下你正在进行倒计时,所以当你倒计时到达所需的值时,你可以确保自己失效并摆脱它(在你的updateCountdown方法中)
将计时器保存在实例变量中,并timer = nil
在没有计时器运行时(即在您调用之后[timer invalidate]
)进行设置.然后,要检查计时器是否处于活动状态,您可以检查是否timer == nil
.
归档时间: |
|
查看次数: |
23223 次 |
最近记录: |