安排覆盖自己

时间:2013-04-22 06:08:15

标签: cocos2d-iphone

如果下面的'delayingTest'被调用N次,我预计它最终也会调用doIt N次。然而事实并非如此,似乎计划覆盖任何先前的计划,据称具有相同的选择器。不管怎么说?

-(void)delayingTest {
    if (_delay) {
        [self schedule:@selector(delayingTest) interval:1.0f repeat:0 delay:1.0f];
    }
    else {
        [self doIt];
    }
}

2 个答案:

答案 0 :(得分:0)

一种方式是: 不要将_delay用作int,而是将其与存储在NSDate中的时间戳绑定,并比较下次调用方法时的时间戳。

答案 1 :(得分:0)

试试这个:

-(void)delayingTest
{
    if (_delay)
    {
        [self unschedule:@selector(delayingTest)];
        [self schedule:@selector(delayingTest) interval:1.0f];
    }
    else
    {
        [self doIt];
    }
}