定时器的使用
来源:互联网 发布:rekordbox软件的作用 编辑:程序博客网 时间:2024/06/14 02:39
定时器的使用
标签(空格分隔): 知识补充
- OC中定时器主要有2种:NSTimer,CADisplayLink
CADisplayLink
// 屏幕1秒刷新60次,每一次屏幕刷新的时候就会调用,1秒调用60次// 创建一个定时器,target对象会调用sel方法+ (CADisplayLink *)displayLinkWithTarget:(id)target selector:(SEL)sel; // 把定时器加入进程(一般是加入主进程) - (void)addToRunLoop:(NSRunLoop *)runloop forMode:(NSString *)mode;// 移除定时器方法- (void)invalidate;
NSTimer
// 使用此方法创建NSTimer对象会自动加入到runloop中+ (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelector userInfo:(id)userInfo repeats:(BOOL)yesOrNo;// 使用此方法创建NSTimer对象需要手动添加到runloop中+ (NSTimer *)timerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelector userInfo:(id)userInfo repeats:(BOOL)yesOrNo;- (void)fire; //立即触发定时器- (NSDate *)fireDate;//开始时间- (void)setFireDate:(NSDate *)date;//设置fireData,暂停、开始会用到- (NSTimeInterval)timeInterval;//延迟时间- (void)invalidate;//停止并删除- (BOOL)isValid;//判断是否有效- (id)userInfo;//通常用nil
延迟执行
- 利用线程的阻塞(睡眠)
[NSThread sleepForTimeInterval:0.01];[NSThread sleepUntilDate:2.0];
- 调用NSObject的方法
[self performSelector:@selector(run) withObject:nil afterDelay:2.0];// 2秒后再调用self的run方法,内部实现就是NSTimer
- 使用GCD函数
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{// 2秒后执行这里的代码...});
- 使用NSTimer
[NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(test) userInfo:nil repeats:NO];
0 0
- 定时器的使用
- C#定时器的使用
- C#定时器的使用
- java定时器的使用
- 内核定时器的使用
- 定时器的使用
- linux定时器的使用
- linux定时器的使用
- linux定时器的使用
- linux定时器的使用
- 定时器的使用
- C#定时器的使用
- 内核定时器的使用
- 使用glib的定时器
- Linux定时器的使用
- linux定时器的使用
- 定时器的使用
- timer 定时器的使用
- Push和Modal的区别
- NVMe的目标:释放闪存潜能
- pageX,clientX,screenX,offsetX区别
- 白话设计模式之--策略模式
- 黑马程序员————集合类
- 定时器的使用
- java统计字符串中各个字符的出现次数
- hdoj-1242-Rescue【广搜+优先队列】
- 24-IO流-56-IO流(ObjectInputStream-对象的反序列化)
- transform
- 一个简单的串行协议的封装
- 类别和类扩展的区别
- 单例
- Eclipse debug的按钮不见了