2013-07-14 23 views
0

如果我使用:的NSTimer類方法,和無效

[NSTimer scheduledTimerWithTimeInterval:.1 target:self selector:@selector(myMethod) userInfo:nil repeats:YES]; 

我怎麼能否定這一,因爲它是一個類的方法,我沒有獲得一個指向它?

回答

1

你可以讓這樣的事情:

[NSTimer scheduledTimerWithTimeInterval:.1 target:self selector:@selector(myMethod:) userInfo:nil repeats:YES]; 

(注意 「:」 後myMethod的)

- (void) myMethod: (id) sender 
{ 
    if ([sender isKindOfClass:[NSTimer class]]) 
    { 
     NSTimer* timer = (NSTimer*) sender; 
     [timer invalidate]; 
    } 
} 
+0

謝謝,或者我想我可以將NSTimer作爲一個ivar,我只是期待那裏有一個「無效的所有計時器電話我猜。 – Woodstock

1

這是一個返回計時器的類方法。您使該計時器無效。

+0

OK,我怎麼能不失效對它的引用定時器? – Woodstock

+0

爲了澄清,我沒有NSTimer * myTimer = [NSTimer調度程序.....]我只是調用[NSTimer ....]因此我沒有對返回的對象的引用,除非我失去了一些東西? – Woodstock

+1

類方法總是返回一個指針;你只是選擇不保留它。如果您想在某些條件下使重複定時器無效,將它存儲在ivar中是最直接的。 –