NSTimer:一旦创建了一个定时器对象(NStimer的实例化),它可以按照一定的时间间隔,将制定的信息发送给目标对象。并更新某个对象的行为。你可以选择在未来的某个时间将它停止、开启、甚至销毁。
1.设置定时器,并初始化定时器对象。
NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:1.0
target:self
selector:@selector(onTimerCallBack:)
userInfo:nil
repeats:YES];
第一个参数:多长的时间间隔;第二个参数:添加定时器的对象;第三个参数:定时之后的回调方法;第四个参数:相关信息,暂时先置为空;第五个参数:是否循环执行。
2.永久性关闭定时器并释放定时器对象。
[ timer invalidate];
timer = nil; //如果这里的定时器不再用的话,这里最好是置成空。如果继续使用,那么就不用置成空了。
3.在特定的情况下我们是可以实现暂停重启定时器的。
//注意:上述的关闭定时器的方法是永久性的,在暂停计时器的方法的时候是不可以用上述的停止方法的。
//暂停定时器(暂时关闭)
[timer setFireDate:[NSDate distantFuture] ] ;
//开启定时器。
[timer setFireDate:[NSDate distantPast] ];
4.还有一点需要注意的是,如果是在子线程中开启的,需要把timer加入到该线程的runloop中去。否则timer将会失效。
[ [ NSRunLoop currentRunLoop] addTimer: timer forMode: NSDefaultRunLoopMode ];
5.还可以将timer作为一种延时的方法
[ [ NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow: 2.0 ] ];
6.这里推荐一个函数,一个延迟函数
[ NSThread sleepForInterVal:5.0 ] ; //暂停5秒。