我有一个奇怪的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");
}
答案 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'方法调用。计划的计时器不需要它。