2014-02-24 80 views
0

**很多感谢的人!我用jeffaphone和马丁轰的答案,在这几个小时一直盯着太感谢你了:) * *在xcode中停止计时器?

我工作的一个项目,我必须每1.35秒播放一段简短的声音文件时游戏正在运行,但当游戏停止后,我该如何关闭计时器?如果你什么都不做,声音文件将继续循环,如果你再次开始游戏,将会开始一个新的循环等。

我到目前为止的代码是这样的;

if ((self.currentState = GameStateRunning)) { 

self.timer = [NSTimer scheduledTimerWithTimeInterval:1.35 target:self selector:@selector(sound:) userInfo:nil repeats:YES]; 
// [self sound:nil]; 

} 
else if ((self.currentState = GameStateEnded)) { 
    [sound removeAllActions]; 

我试着停止声音,但似乎并没有工作,所以有没有办法阻止或重置计时器,以便循环将停止,直到比赛再次启动?

+2

[self.timer invalidate] – Gruntcakes

+0

而不是编辑您的问题来说出您使用了哪个答案,请选中该答案旁边的复选标记。这就是用户如何奖励其正确答案的声誉,随后的观众可以确定使用的解决方案。 –

+0

Gotcha谢谢:) –

回答

1

要停止计时器:

[self.timer invalidate]; 
self.timer = nil; 

注意,你没有保留计数,这样你就不会释放它(如果你非ARC)。

+1

一如既往,随时编辑答案。 :) –

+0

公平点。 ;-) – Caleb