2

所以,这就是问题所在。我正在尝试为我的游戏制作一个计时器,但它似乎没有运行。

我首先为 nstimer 创建一个属性:

@property (nonatomic) NSTimer gameTimer;

并合成它:

@synthesize gameTimer = _gameTimer; 

然后我用这个方法来设置它:

-(NSTimer *) gameTimer{
    if (_gameTimer == nil) _gameTimer = [[NSTimer alloc]init];
    return _gameTimer;
}

但是,当我尝试通过 uibutton 启动计时器时:

- (IBAction)play:(UIButton *)sender {

    _levelNumber = 1;
    _en1v = -1;
    _en2v = 1;
    _en3v = -1;
    [self setPath];
    _gameTimer = [NSTimer timerWithTimeInterval:1.0 target:self     selector:@selector(onTimer:) userInfo:nil repeats:YES];
    self.play.hidden = TRUE;
}

它不起作用。

我在 onTimer: 方法中放入了一个 nslog,发现计时器没有触发一些怎么办?

我犯了一个明显的错误吗?

4

1 回答 1

1

您根本没有启动计时器。

采用:

_gameTimer =  [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(onTimer:) userInfo:nil repeats:YES];

而在停止时,(可能在stop:方法中)

[_gameTimer invalidate];
_gameTimer = nil;
于 2013-04-10T06:25:29.413 回答