NSTimer在课堂上的奇怪行为

时间:2013-03-19 22:05:22

标签: ios objective-c nstimer repeat

我有一个奇怪的NSTimer对象行为。

我正在尝试使用重复计数2秒来调用ChangePic方法,但计时器不会重复。我有这个问题只在项目中的一个类

我的应用程序中有5个View Controller,相同的代码适用于除此之外的所有类。 有人知道它怎么可能?是否有可能阻止计时器?

-BTW,ChangePic方法只被调用一次,而不是重复。

我的代码:

ViewController.h

@property (nonatomic, strong) NSTimer *timer;

ViewController.m

_timer = [NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(ChangePic) userInfo:nil repeats:YES];
[_timer fire];

-(void) ChangePic {
    NSLog(@"testing"); 
}

2 个答案:

答案 0 :(得分:3)

将其分配给属性而不是支持变量。

self.timer = [NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(ChangePic) userInfo:nil repeats:YES];

答案 1 :(得分:0)

很难准确说明你的问题是什么,没有给出很多背景知识。我可以告诉你,我回答了另一个问题,其中问题是其中一个观点阻止了计时器。定时器可以在多种不同的模式下运行,不同的场景可能导致计时器有时被阻止。尝试将计时器添加到所有常见模式,如下所示:

[[NSRunLoop currentRunLoop] addTimer:_timer forMode:NSRunLoopCommonModes];

另外,像@Hejazi所说,删除'fire'方法调用。计划的计时器不需要它。