NSTimer定时器

    xiaoxiao2025-01-29  10

    + (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的结合使用总结 常常出发此方式时不能够让她中断执行或者多次执行此方法,这是我们多使用人机交互来控制。
    转载请注明原文地址: https://ju.6miu.com/read-1295895.html
    最新回复(0)