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],立刻触发就好了!
时间: 2024-10-12 02:17:25