• iOS-NSTimer-pause-暂停-引用循环


    7月26日更新:

    今天更新的主要目的是因为暂停!!!!

    注:不推荐使用,并不是这样有错,而是因为这样写代码的规范问题,代码要有可读性,遵循代码即文档,使用暂停在团队合作中可能会带来误会,非必要不建议使用,使用注意添加注释!!!

    NSTimer,是个有爱有恨的类,用起来方便,但是随随便便就可能引用循环了,内存泄露自然不用说了;

    怎么方便的使用NStimer,这里小小的总结了下,写的不对的欢迎指出。

    首先是习惯问题,为了防止写错,我一般会把NSTimer相关的封到单独的函数里面。

    如下:

    - (void)initTimer
    {
        if(_timer)
        {
            [self clearTimer];
        }
        _timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(test) userInfo:nil repeats:YES];
    }
    - (void)clearTimer
    {
        [_timer finalize];
        _timer = nil;
    }
    - (void)test
    {
        NSLog(@"Timer!");
    }

    还有就是,可以尝试一次初始化,一直使用,直到dealloc释放,所以就需要暂停了,

    方法如下:

    - (void)stratAnimationTimer
    {
        [_animationTimer setFireDate:[NSDate date]];
    } 
    - (void)pauseAnimationTimer
    {
        [_animationTimer setFireDate:[NSDate distantFuture]];
    }

    设置触发时间[NSDate distantFuture],就暂停了,怎么暂停的呢,触发时间distantFuture,不懂自己翻译去~~~

    怎么开始?[NSDate date],立刻触发就好了!

  • 相关阅读:
    使用windows自带工具计算文件 MD5 值
    去除桌面图标的箭头
    给自己电脑(物理机)安装 linux 系统
    Python 字典 fromkeys()方法的坑
    Python 超时(运行时间太长) 自定义多长时间结束进程
    Win10 python2和python3共存
    verdidebussy的使用技巧
    <DC guide ---2>
    <DC guide ---1>
    <RTL To GDS ---第一阶段>
  • 原文地址:https://www.cnblogs.com/kongkaikai/p/5684122.html
Copyright © 2020-2023  润新知