iOS - 定时任务

定时任务就是一定时间内或一定时间之后做某事,一共三个方法。

现在要执行的操作是,2秒之后执行begin这个方法。

第一种方法:


[self performSelector:@selector(begin) withObject:nil afterDelay:2];

第二种方法:用多线程GCD实现


dispatch_after(dispatch_time(DISPATCH_TIME_NOW,(int64_t)(2 * NSEC_PER_SEC)),dispatch_get_main_queue(),^{

self.hud.alpha=0.0

});

第三种方法:用NSTimer


[NSTimer scheduledTimerWithTimeInterval:2 target:self selector:@selector(begin)userInfo:nil repeats:NO];

// repeats如果为YES,每隔2秒就会调用一次begin方法

这里再补充一个绘图时使用的定时方法

在绘图的时候需要用到定时器,通常使用CADisplayLink(每次屏幕刷新的时候就会调用,屏幕一般一秒刷新60次),NSTimer很少用于绘图,因为调度优先级比较低,并不会准时调用,会有卡顿的情况出现

    CADisplayLink *link = [CADisplayLink displayLinkWithTarget:self selector:@selector(begin)];
    
    // 添加主运行循环
    [link addToRunLoop:[NSRunLoop mainRunLoop] forMode:NSDefaultRunLoopMode];
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容