我已经使用 [NSTimer scheduledTimerWithTimeInterval:target:selector:userInfo:] 安排了一个计时器,并希望在它触发时使其无效。
- (id)init
{
[NSTimer scheduledTimerWithInterval:1 target:self selector:@selector(fired:) userInfo:nil repeats:YES];
}
- (void)fired:(NSTimer *)timer
{
if (someCondition) {
[timer invalidate];
}
}
这是允许的吗?该文件指出
您必须从安装了计时器的线程发送此消息。如果您从另一个线程发送此消息,与计时器关联的输入源可能不会从其运行循环中删除,这可能会阻止线程正确退出。
如果这不是完成此任务的正确方法:正确的方法是什么?