替代NSTimer的block计时器!!
博客专区 > super_co 的博客 > 博客详情
替代NSTimer的block计时器!!
super_co 发表于3年前
替代NSTimer的block计时器!!
  • 发表于 3年前
  • 阅读 4
  • 收藏 1
  • 点赞 0
  • 评论 0

新睿云服务器60天免费使用,快来体验!>>>   

摘要: 既然NSTimer容易造成内存泄露,那就给初出茅庐的小程序员们带来一个惊喜吧!

话不多说上代码:LIST


-(void)startTime{

    timeout_int=0;

    dispatch_queue_t queue_global =dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);

    dispatch_source_t _timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0,0,queue_global);

    dispatch_source_set_timer(_timer,dispatch_walltime(NULL, 0),1.0*NSEC_PER_SEC, 0);

    dispatch_source_set_event_handler(_timer, ^{

        __weak ViewController *weakself =self ;

        if(timeout_int>10){ //倒计时结束,关闭

            dispatch_source_cancel(_timer);

            dispatch_async(dispatch_get_main_queue(), ^{

               weakself.numberLabel.text = @"结束";

            });

        }else{

            //            int minutes = timeout_int / 60;

            int seconds = timeout_int % 61;

            NSString *strTime = [NSString stringWithFormat:@"%.2d", seconds];

           dispatch_async(dispatch_get_main_queue(), ^{

                //设置界面的按钮显示

                weakself.numberLabel.text = strTime;

            });

            timeout_int++;

              }

    });

    dispatch_resume(_timer);

}



标签: iOS CODE
  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 1
博文 10
码字总数 7205
作品 1
×
super_co
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: