У меня есть класс с переменной NSTimer *myTimer;
. В какой-то момент я делаю:
myTimer = [NSTimer scheduledTimerWithTimeInterval:20 target:self selector:@selector(doStuff) userInfo:nil repeats: YES];
далее, у меня есть метод:
- (void)doStuff
{
if(myTimer)
{
//do stuff
}
}
и я прекращаю свой таймер, когда класс освобождается через:
- (void)dealloc
{
if (myTimer) { //if myTimer==nil it already has been stopped in the same way
[myTimer invalidate];
myTimer = nil;
}
}
Теперь проблема в том, что когда я освобождаю класс, таймер все равно включается и выключается. Я делаю что-то неправильно? Кажется, метод dealloc никогда не вызывается, иначе myTimer будет иметь значение nil, и даже если селектор сработает, он не попадет в if(myTimer)