zoukankan      html  css  js  c++  java
  • NSTimer小结

    一.说明

    可以精确到50-100毫秒,和CFRunLoopRef是"toll-free bridged",可以重复间隔或不可重复.NSTimer不是绝对准确的,而且中间耗时或阻塞错过下一个点,那么下一个点就pass过去了.

    二.方法

    1.创建

    没有scheduled的话需要手动addTimer:forMode:添加timer到一个ruloop中,scheduled的以默认mode直接添加到当前的runloop中.

    + (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:(id)userInfo repeats:(BOOL)yesOrNo;

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

    #if MAC_OS_X_VERSION_10_2 <= MAC_OS_X_VERSION_MAX_ALLOWED || __IPHONE_2_0 <= __IPHONE_OS_VERSION_MAX_ALLOWED

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

    #endif

    2.开始

    - (void)fire;

    //立即运行timer对应的方法,如果timer不重复,那么timer之后会失效;如果timer重复,timer的开始时间会从这里开始计算,以后就算再次手动调用fire,也不会改变这个时间

    - (NSDate *)fireDate;

    //下一次运行时间,若已经失效,返回上次运行时间(?为什么我的返回的是2001-1-1?)

    #if MAC_OS_X_VERSION_10_2 <= MAC_OS_X_VERSION_MAX_ALLOWED || __IPHONE_2_0 <= __IPHONE_OS_VERSION_MAX_ALLOWED

    - (void)setFireDate:(NSDate *)date;

    //设置timer下一次运行的时间,如果date比现在早,那么立刻运行

    #endif

    - (NSTimeInterval)timeInterval;

    //不重复的timer始终返回0

    - (void)invalidate;

    //唯一的从NSRunLoop中移除释放timer的方法,只能是拥有timer的线程中跳用该函数,否则可能不起作用

    - (BOOL)isValid;

    - (id)userInfo;

    //当tmer失效时不可调用

  • 相关阅读:
    对json的爱恨情仇
    Linux操作系统改动PATH的方法
    不好意思啊,我上周到今天不到10天时间,用纯C语言写了一个小站!想拍砖的就赶紧拿出来拍啊
    cmd启动Oracle服务和监听服务
    8.4.1 跨越整个分区的聚合函数
    nginx 代理tcp长连接短连接配置
    Nginx Upstream Keepalive 分析 保持长连接
    Xargs用法详解
    删除除了指定扩展名文件其他全部删除
    LINUX的文件按时间排序
  • 原文地址:https://www.cnblogs.com/v2m_/p/2168765.html
Copyright © 2011-2022 走看看