希望各位能支持一下我们的网站:http://t.cn/zOdAUxJ 提提意见
NSTimer是Cocoa中比较常用的定时器类,基本操作如下:
handleTimer方法可以自行定义。在需要的地方创建timer即可,handleTimer就可以每0.5秒执行一次。
例:
- (void) handleTimer: (NSTimer *) timer
{
//在这里进行处理
}
NSTimer *timer;
timer = [NSTimer scheduledTimerWithTimeInterval: 0.5
target: self
selector: @selector(handleTimer:)
userInfo: nil
repeats: YES];
需要注意
1:如果不想循环timer, 代码改为
repeats: NO
2.NSTimer初始化后,self的retainCount加1。
那么,我们需要在释放这个类之前,执行[timer invalidate];否则,不会执行该类的dealloc方法。
3.遇到table拖动的时候(uiscrollView划动时停止),timer停止
- (void)setTimer
{
NSTimer *timer;
NSDate *date = [NSDate date];
timer = [[NSTimer alloc] initWithFireDate:date interval:m_ablum.m_displayInterval target:self selector:@selector(updateTime:) userInfo:nil repeats:YES];
[[NSRunLoop currentRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];
self.m_timer = timer;
[timer release];
}
在NSDefaultRunLoopMode模式下,没有更新.
timer = [[NSTimer alloc] initWithFireDate:date interval:m_ablum.m_displayInterval target:self selector:@selector(updateTime:) userInfo:nil repeats:YES];
在设置为target时,其retaincount 加一.!!!!
一定注意