0

我正在制作一个具有“更新方法”之王的应用程序,负责持续运行代码。我想使用一个NSTimer,因为它可以选择让它无限期地重复。我有它这样加载:

gameTimer = [NSTimer timerWithTimeInterval:0.01428 target:self selector:@selector(GameUpdate:) userInfo:NULL repeats:true];

声明GameUpdate:如下:

-(void)GameUpdate:(NSTimer*)timer;

问题是,里面的代码GameUpdate:永远不会运行。它曾经在 xcode 4.2 中工作。为什么是这样?

4

1 回答 1

0

您需要将新创建的 NSTimer 对象添加到运行循环中。

从这个相关问题的答案中提取):正如文档所说:

计时器与运行循环一起工作。要有效地使用计时器,您应该了解运行循环是如何运行的——请参阅 NSRunLoop 和线程编程指南。特别要注意的是,运行循环保留了它们的计时器,因此您可以在将计时器添加到运行循环后释放它。

如果您查看该相关问题的其他答案,您将了解如何创建一个 NSTimer 对象,并在其中自动将其添加到运行循环中。

于 2012-05-29T01:58:40.217 回答