NSTimer
注意:
- 1、
NSTimer应该是weak
- 为什么NSTimer应该是weak,
- 因为只要创建一个NSTimer对象, 该对象就会被主线程强引用
- 为什么NSTimer应该是weak,
@property (weak, nonatomic) NSTimer *timer;
- 2、scheduledTimerWithTimeInterval:
创建一个定时器
, 并且立即可是计时, 系统就会自动将NSTimer添加到主线程中
// 如果给userInfo赋值, 那么定时器调用的方法就必须接受参数, 并且接受的参数就是NSTimer
// 只要调用scheduled方法创建一个NSTimer对象, 系统就会自动将NSTimer添加到主线程中
self.timer = [NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(nextPage:) userInfo:@"cjp" repeats:YES];
// 参数说明:
scheduledTimerWithTimeInterval: 创建一个定时器, 并且立即可是计时
TimeInterval: 间隔时间
target: 调用谁的方法
selector: 调用什么方法
userInfo: 需要传递什么参数
repeats: 是否重复
每隔2.0秒调用一次self的nextPage方法, 并且不传递任何参数
- 3、将定时器
添加到主运行循环
中- NSRunLoopCommonModes模型:—> 就会进行页面其他操作,定时器不会受其影响
[[NSRunLoop mainRunLoop] addTimer:self.timer forMode:NSRunLoopCommonModes];
- 4、关闭定时器 invalidate方法
- NSTimer是一次性的, 只要invalidate之后就不能使用了
- 只要调用invalidate方法, 系统就会将NSTimer从主线程移除, 并且销毁NSTimer对象
[self.timer invalidate];
网友评论