如何在objective-c中每秒调用一次方法

时间:2012-08-07 09:50:31

标签: objective-c ios cocos2d-iphone

我的程序有一个循环,可以计算和绘制每秒60次。我希望我的动作动作每秒只执行一次,我如何用objective-c方法做到这一点?

3 个答案:

答案 0 :(得分:3)

您可以使用

+ (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)seconds target:(id)target selector:(SEL)aSelector userInfo:(id)userInfo repeats:(BOOL)repeats

一秒钟:

NSTimer *yourTastTimer = scheduledTimerWithTimeInterval:1 target:yourTarget selector:@selector(yourMethod) userInfo:nil repeats:YES;

您可以查看NSTimer的文档了解详情。

修改

您可能还想查看this answer

答案 1 :(得分:2)

如果您使用Cocos2D for iphone,则不得使用NSTimer。

documentation之后,您应该使用schedule:interval:方法:

[self schedule: @selector(tick:) interval:1.0f];

- (void) tick: (ccTime) dt
{
    //...
}

答案 2 :(得分:0)

如果你使用CCSprite,他们有一个可能有效的调度方法。 基本上为主循环做什么。 您也可以在主循环中保留一个自动收报机,并检查这是自动收报机%60 == 0。 然后调用你的动作。

我不鼓励用cocos2d here读NSTimer。