美文网首页
计数器的实现 计数精度秒

计数器的实现 计数精度秒

作者: 月沉眠love | 来源:发表于2019-06-21 16:36 被阅读0次

iOS -计数器的实现 计数精度秒

94A653AFBD72D17C839E9ED8A37CCBF8.jpg
-(UILabel *)timeLable{
    if(!_timeLable){
        _timeLable=[[UILabel alloc]init];
        __block NSInteger second = 0;
        __block NSInteger min = 0;
        __block NSInteger hour = 0;
        //全局队列    默认优先级
        dispatch_queue_t quene = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
        //定时器模式  事件源
        dispatch_source_t timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, quene);
        //_timer = timer;
        //NSEC_PER_SEC是秒,*1是每秒
        dispatch_source_set_timer(timer, dispatch_walltime(NULL, 0), NSEC_PER_SEC * 1, 0);
        //设置响应dispatch源事件的block,在dispatch源指定的队列上运行
        dispatch_source_set_event_handler(timer, ^{
            //回调主线程,在主线程中操作UI
            dispatch_async(dispatch_get_main_queue(), ^{
                if (second >= 0) {
                    if(second == 60){
                        second =0;
                        min++;
                        if (min == 60) {
                            min =0;
                            hour++;
                        }
                    }
                    _timeLable.text = [NSString stringWithFormat:@"正在看房中:%.2ld:%.2ld:%.2ld",hour,min,second];
                    second++;
                }
                else
                {
                    //这句话必须写否则会出问题
                    dispatch_source_cancel(timer);
                    _timeLable.text = @"正在看房中*****";
                }
            });
        });
        //启动源
        dispatch_resume(timer);
        if (@available(iOS 8.2, *)) {
            _timeLable.font = [UIFont systemFontOfSize:18 weight:0.2];
        }
        [_timeLable setTextColor:[UIColor redColor]];
    }
    return _timeLable;
}

相关文章

  • 计数器的实现 计数精度秒

    iOS -计数器的实现 计数精度秒

  • jvm(二)-java垃圾回收

    一.判断哪些是需要回收的对象 引用计数法 实现:一个地方引用对象,计数器+1,引用失效,计数器-1,计数器为0时表...

  • 24秒计数(&&)0到99计数

    用C51做一个24秒计数器原理图如下:24秒计数器.png 代码如下: 运用定时器做 从00计数到99 原理图一...

  • JS实现计数器

    1.如何实现计数器 背景:点击按钮实现计数器功能 ====> 点击按钮实现累加 从以下4种方式选择最优的一个方案 ...

  • 2018-04-27 初识jvm

    jvm 数据区及其作用: 程序计数器:我们代码中if else ,switch,for 等逻辑语句通过计数器实现方...

  • 面试官:限流算法有哪些?

    限流的实现算法有很多,但常见的限流算法有三种:计数器算法、漏桶算法和令牌桶算法。 一、计数器算法 计数器算法是在一...

  • 9.20

    定时计数器,用占空比实现呼吸灯

  • RateLimiter源码解析

    计数器限流 最原始的代码 但是计数器限流无法对相邻两秒都是高qps进行限流,比如1:29:29.999有100qp...

  • JUC-CountDownLatch

      CountDownLatch:使一个线程等待其他线程各自执行完毕后再执行。  通过一个计数器来实现的,计数器的...

  • 使用::before和::after伪元素自动生成列表序号

    1.关键点在于使用 counter() 计数器属性,调用计数器,可以不使用列表元素实现序号功能。 2. 同时需要...

网友评论

      本文标题:计数器的实现 计数精度秒

      本文链接:https://www.haomeiwen.com/subject/qwcuqctx.html