我正在构建一种模拟,“ticks”之间的间隔越来越小:
- (void) simulationTick {
if (self.currentTick >= kNumberOfSimulationTicks)
return; // recursion anchor
// ... do stuff ...
self.currentTick = self.currentTick + 1;
[self performSelector:@selector(simulationTick) withObject:nil
afterDelay:2.5 * pow(0.95,(double)self.currentTick)]; // acceleration
}
离开模拟屏幕时,我想停止模拟,所以我用
执行此操作[NSObject cancelPreviousPerformRequestsWithTarget:self]
我首先尝试使用
[[NSRunLoop currentRunLoop] cancelPerformSelectorsWithTarget:self]
......但这不起作用。
为什么不呢?