我安排一個NSTimer
情況是這樣的:爲什麼`cancelPreviousRequestsWithTarget`取消NSTimer?
[NSTimer scheduledTimerWithTimeInterval:.2 target:self selector:@selector(someMethod) userInfo:nil repeats:YES];
我能叫invalidate
我NSTimer
從射擊停止,但
[NSTimer cancelPreviousPerformRequestsWithTarget:self];
不會停止計時。我已經檢查和[NSRunLoop currentRunLoop]
是完全一樣的(正如所料,這些都是對用戶點擊的迴應),當然self
實例始終是相同的。 cancel
爲什麼不取消?
謝謝彼得。我看到了混亂。本質上,我正在調度錯誤的方法。沒有注意到什麼時候或者我切換了。 –
因此,對於靜態方法來說,因爲Class不符合NSObject(我認爲),所以NSTimer是唯一的出路。請忽略此傳達的明顯不好的設計:) –
'Class'類只說明該值是一個類;它並沒有說什麼這個類做了什麼或者不符合什麼,或者是或者不是它的子類。這個問題不在運行時間;運行時重要的是您發送的信息以及您發送給哪個類。此外,類實際上可以使用來自根類(在本例中爲NSObject)的實例方法響應否則無法識別的類消息。 http://developer.apple.com/library/mac/documentation/cocoa/conceptual/objectivec/Chapters/ocObjectsClasses.html#//apple_ref/doc/uid/TP30001163-CH11-TPXREF120 –