OC中的Timer的用法非常简单。首先初始化,
常见两个静态方法得到NSTimer对象。
+ (NSTimer *)timerWithTimeInterval:(NSTimeInterval)interval target:(id)mTarget Target selector:(SEL)mSelector userInfo:(id)mUserInfo repeats:(BOOL)yesOrNo; //interval时间间隔 //mTarget就是发送对象,就是这个定时器给谁用
+ (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)interval target:(id)mTarget selector:(SEL)mSelector userInfo:(id)mUserInfo repeats:(BOOL)yesOrNo;
NOTE:不用scheduled方式初始化的,需要手动addTimer:forMode: 将timer添加到一个runloop中。而scheduled的初始化方法将以默认mode直接添加到当前的runloop中.
这样做完之后你这个定时器就会按照你设置的时间间隔执行SEL设置的方法,至于是否重复执行,看你repeats参数那么开启了定时器,负责的程序员肯定会想到怎么关闭呢,当然API上也提供了方法,[timer invalidate];就可以把timer从loop里移除了。当然调用这个方法之前最好先判断一下,如 if(YES == [timer isValid]) {};
另外,有时我们需要立即触发定时器,不想等待那个时间间隔,timer对象提供了一个fire方法完成你的需求