WeakTimer 0.1.1

WeakTimer 0.1.1

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布时间最新版本2016年1月

Alexander Stepanov维护。



WeakTimer 0.1.1

  • 作者
  • Alexander Stepanov

简化工作与定时器的交互。

特性

  • 基于block
  • block中不保留self引用
  • 无需手动使定时器失效,定时器将与self一起被释放

用法

启动

      WEAK_TIMER_ONCE(seconds, block_body);   // no repeat timer
      WEAK_TIMER_REPEAT(seconds, block_body); // repeat timer

停止

      WEAK_TIMER_STOP(timerToken);        // stop timer with token
      WEAK_TIMER_STOP_ALL();              // stop all timers

示例

  1. 启动循环定时器,它会与self一起被释放

    - (void)viewDidLoad {
        [super viewDidLoad];
    
        WEAK_TIMER_REPEAT(1, {
            self.value++;
        });
    }
    
  2. 将定时器token保存起来,稍后可以手动停止定时器

    // @property (nonatomic) id timerToken;
    -(void)viewDidAppear:(BOOL)animated {
        [super viewDidAppear:animated];
        self.timerToken = WEAK_TIMER_ONCE(5, {
            NSLog(@"5 sec elapsed");
        });
    }
    -(void)viewWillDisappear:(BOOL)animated {
        [super viewWillDisappear:animated];
        WEAK_TIMER_STOP(self.timerToken);
    }
    

    如果只使用一个定时器或者您需要停止所有定时器,则token不是必需的

    -(void)viewDidAppear:(BOOL)animated {
        [super viewDidAppear:animated];
        WEAK_TIMER_ONCE(5, {
            NSLog(@"5 sec elapsed");
        });
    }
    -(void)viewWillDisappear:(BOOL)animated {
        [super viewWillDisappear:animated];
        WEAK_TIMER_STOP_ALL();
    }