iOS 避免NSTimer循环引用的解决办法

2021-09-16  本文已影响0人  街角没有咖啡店



    对于需要用到计时的场景多而且杂的时候,NSTimer 的循环引用问题不胜其烦,需要在各处地方写它的停止方法,往往搞的代码乱糟糟的。

    我在开发过程中有了一个想法,就是搞一个全局的单例来持有 NSTimer ,在它的触发方法中,将持有者的 Block 进行回调,这样就一劳永逸的解决了它的循环引用问题。

    由此便一发不可收拾,目前在该项目中本着使用简单、节省资源的原则下,新增了许多新特性,推荐各位一用,觉得好的话还请多多点赞关注,谢谢~

    话不多说,上地址:

链接: GitHub
链接: Gitee

JLTimer介绍

一款基于 NSTimer 、好用高效的计时器

使用说明

1.快捷创建一个只回调一次的计时器。

[[JLTimer shared] addNewTaskWithOnceTime:5 handleBlock:^{
    
    //5秒后回调并停止计时           
}];

2.快捷创建一个倒计时的计时器。

[[JLTimer shared] addCountDownTaskWithTime:3 handleBlock:^{

    //每1秒回调1次,到第3秒时停止计时

}];

3.创建一个常规计时器,附带停止方法。

NSString *timerID = [[JLTimer shared] addNewTaskWithTime:1 isRepeat:true handleBlock:^{
            
    //每1秒回调1次,一直重复,返回值为当前计时器的ID
}];

//可以在业务需要的时候调用stopTimerWithID方法停止该计时器

[[JLTimer shared] stopTimerWithID:timerID];
上一篇下一篇

猜你喜欢

热点阅读