2

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

我正在尝试以ChangePic2 秒的重复计数调用方法,但计时器没有重复。我只在项目的 1 个班级中遇到这个问题

我的应用程序中有 5 个视图控制器,并且相同的代码适用于除此之外的所有类。有人知道怎么可能吗?有没有可能是什么东西阻塞了计时器?

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

我的代码:

视图控制器.h

@property (nonatomic, strong) NSTimer *timer;

视图控制器.m

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

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

2 回答 2

3

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

self.timer = [NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(ChangePic) userInfo:nil repeats:YES];
于 2013-03-19T22:09:11.250 回答
0

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

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

另外,就像@Hejazi 所说,删除“fire”方法调用。在预定的计时器上不需要它。

于 2013-03-19T23:11:51.233 回答