当前位置:网站首页>OC-NSTimer

OC-NSTimer

2022-08-09 11:08:00 彭同学她同桌

必须运行在NSRunLoop上

@interface A:NSObject
-(void)openTimer;
-(void)doAction:(NSTimer*)timer;

@end
@implementation A

-(void)openTimer
{
    
	NSDictionary *info = @{
    @"name":@"dahuang"};
	//创建计时器,自动将计时器放入runloop
    [NSTimer scheduledTimerWithTimeInterval:2 target:self selector:@selector(doAction:) userInfo:nil repeats:YES];
    //TimeInterVal是时间也就是每多少秒执行一次 target是执行的函数在哪 selector是要执行的方法是什么 userInfo执行函数之后会打印相应信息 repeats是是否重复执行
    
	//手动开启runloop 
    [[NSRunLoop mainRunLoop]run];//手动开启runloop 
    //创建计时器 但是不会自动放进计时器
    NSTimer* timer = [NSTimer scheduledTimerWithTimeInterval:2 target:self selector:@selector(doAction:) userInfo:nil repeats:YES];
    //手动将计时器放进runloop
    [NSRunLoop mainRunLoop]addTimer:timer forMode:NSDefaultRunLoopMode];
    [[NSEunLoop mainRunLoop]run];
    
}
-(void)doAction:(NSTimer*)timer
{
    
    NSLog(@"%s",__func__);
}
@end
int main()
{
    
    A *a = [[A alloc]init];
    [a openTimer];//
    return 0;
}

fire

[timer fire]//会立即执行

invalidate

[timer invalidate]//立即停止

原网站

版权声明
本文为[彭同学她同桌]所创,转载请带上原文链接,感谢
https://blog.csdn.net/qq_43535469/article/details/126226897