您的位置:首页 > 移动开发 > IOS开发

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

2016-07-19 11:36 316 查看
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],立刻触发就好了!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: