我安排一个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 –