CADisplayLink是一种以屏幕刷新频率触发的时钟机制,每秒钟执行大约60次。
CADisplayLink是一个计时器,可以使绘图代码和视图的刷新频率保持同步,而NSTimer是无法确保计时器实际为触发的准确的时间的。
用法如下
//创建
CADisplayLink * link=[CADisplayLink displayLinkWithTarget:self selector:@selector(secondChange)];
//添加到主循环当中
[link addToRunLoop:[NSRunLoop mainRunLoop] forMode:NSDefaultRunLoopMode];
NSTimer不怎么精确
[NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(secondChange) userInfo:nil repeats:YES];
获取当前的秒数
//获取当前时间
NSDate * date=[NSDate date];
//创建一个时间格式化的对象
NSDateFormatter * formatter=[[NSDateFormatter alloc]init];
formatter.dateFormat=@"ss";
CGFloat time=[[formatter stringFromDate:date]floatValue];
还有另外一种方法
NSCalendar * cal=[NSCalendar currentCalendar];
CGFloat time1=[cal component:NSCalendarUnitSecond fromDate:date];