`cancelPerformSelectorsWithTarget:` vs `cancelPreviousPerformRequestsWithTarget:` - PullRequest
2 голосов
/ 13 января 2012

Я строю своего рода симуляцию с еще меньшими интервалами между «галочками»:

- (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]

… но это не сработало.

Почему бы и нет?

Видимо многие другие имели ту же проблему и то же решение.Но нигде не смог найти именно почему .Какая разница между ними?

...