2013-04-22 69 views
0

如果下面的'延遲測試'被稱爲N次,我預計它最終也會調用doIt N次。然而,情況並非如此,看起來好像該時間表會覆蓋任何先前的時間表,據說具有相同的選擇器。無論如何圍繞這個?時間表覆蓋本身

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

回答

0

一個方法是: 不使用_delay爲int但時間戳其綁定其存儲在NSDate和比較時間戳時,下一次你的方法被調用。

0

試試這個:

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