在iOS开发中,我们可以通过三种途径来实现定时调用某一个方法的功能。为了简便期间,我直接在Xcode中写代码以及注释。
首先我们定义一个被定时执行的方法
- (void)reloop {
NSLog(@"循环执行");
}
下边我们分别讨论这三种方法
1、使用NSTimer
// 1、使用nstimer创建定时器
// A.自动加入主循环
NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:2 target:self selector:@selector(reloop) userInfo:nil repeats:YES];
// 激活定时器
[timer fire];
// 在循环调用时,必须手动释放定时器,否则不必手动释放
[timer invalidate];
// B.手动加入主循环
NSTimer *timer = [NSTimer timerWithTimeInterval:2 target:self selector:@selector(reloop) userInfo:nil repeats:YES];
[timer fire];
[[NSRunLoop mainRunLoop] addTimer:timer forMode:NSDefaultRunLoopMode];
注意,由于线程可能会阻塞,所以这种方法创建出来的定时器肯呢过会被延迟
2、使用CADisplayLink