NSTimer 实现时钟回调方法

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

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();
    }
}

 

posted on 2018-02-24 13:38  东方🐺  阅读(465)  评论(0编辑  收藏  举报

导航