NSTimer定时器

+ (NSTimer *)timerWithTimeInterval:(NSTimeInterval)ti invocation:(NSInvocation *)invocation repeats:(BOOL)yesOrNo;

+ (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)ti invocation:(NSInvocation *)invocation repeats:(BOOL)yesOrNo;


+ (NSTimer *)timerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelector userInfo:(nullableid)userInfo repeats:(BOOL)yesOrNo;

+ (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelector userInfo:(nullableid)userInfo repeats:(BOOL)yesOrNo;

//我用时一般都用这种方法,其他几种几乎没用。

self.timer=[NSTimerscheduledTimerWithTimeInterval:0.4target:selfselector:@selector(timer1)userInfo:nilrepeats:YES];


- (instancetype)initWithFireDate:(NSDate *)date interval:(NSTimeInterval)ti target:(id)t selector:(SEL)s userInfo:(nullableid)ui repeats:(BOOL)repNS_DESIGNATED_INITIALIZER;


参数解读:1.参数解读

ti定时器从现在往后多久开始启动;

yesOrNo/rep定时器是否循环;

aTarget定时器的对象

aSelector定时器出发的方法选择器

userInfo/ui定时器带的参数信息;

        2、timerWithTimeInterval这两个类方法创建出来的对象如果不用 addTimer: forMode方法手动加入主循环池中,将不会循环执行。并且如果不手动调用fair,则定时器不会启动。

        3、scheduledTimerWithTimeInterval这两个方法不需要手动调用fair,会自动执行,并且自动加入主循环池。

        4、init方法需要手动加入循环池,它会在设定的启动时间启动。

NSTimer的方法

- (void)fire;启动

- (void)invalidate;停止


NSTimer的属性

@property (copy)NSDate *fireDate;定时器的启动时间,常用来管理定时器的启动与停止,如下:

[self.timersetFireDate:[NSDatedistantFuture]];停止

[self.timersetFireDate:[NSDatedistantPast]];启动

@property (readonly)NSTimeInterval timeInterval;只读属性,获取定时器调用间隔时间

@propertyNSTimeInterval toleranceNS_AVAILABLE(10_9,7_0);设置误差范围

@property (readonly,getter=isValid)BOOL valid;只读属性,获取定时器是否

@property (nullable,readonly,retain)id userInfo;获取参数信息






NSTime的结合使用总结
常常出发此方式时不能够让她中断执行或者多次执行此方法,这是我们多使用人机交互来控制。

你可能感兴趣的:(NSTimer,定时器)