欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

NSTimer 实现时钟回调方法

程序员文章站 2022-07-02 17:45:58
在开发过程中,发现时钟调用的地方比较多。所以对时钟进行了一个简单的统一封装。具体代码如下: 1、时钟回调函数的声明: 2、时钟回调函数的实现: ......

在开发过程中,发现时钟调用的地方比较多。所以对时钟进行了一个简单的统一封装。具体代码如下:

1、时钟回调函数的声明:

#pragma mark 时钟回调处理
//时钟回调
+(NSTimer*) lsScheduleTimerWithTimerInternal:(NSTimeInterval)interval
                                       block:(void(^)())block
                                     repeats:(BOOL)repeats;

2、时钟回调函数的实现:

/**
 *    @brief  时钟回调
 *    @param  paramete     请求参数
 *         interval:   时间间隔
 *          repeats:   重试次数
 *    @return     NSTimer
 */
+(NSTimer*) lsScheduleTimerWithTimerInternal:(NSTimeInterval)interval
                                       block:(void(^)())block
                                     repeats:(BOOL)repeats
{
    NSTimer* timer = [self scheduledTimerWithTimeInterval:interval
                                                   target:self
                                                 selector:@selector(lsTimerBlockInvoke:)
                                                 userInfo:[block copy]
                                                  repeats:repeats];
    [[NSRunLoop currentRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];

    //保留NSTimer类对象,可忽略
    return timer;
}

+(void)lsTimerBlockInvoke:(NSTimer*)timer
{
    void(^block)() = timer.userInfo;

    if(block){
        block();
    }
}