如果下面的'delayingTest'被调用N次,我预计它最终也会调用doIt N次。然而事实并非如此,似乎计划覆盖任何先前的计划,据称具有相同的选择器。不管怎么说?
-(void)delayingTest {
if (_delay) {
[self schedule:@selector(delayingTest) interval:1.0f repeat:0 delay:1.0f];
}
else {
[self doIt];
}
}
答案 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];
}
}