Как правильно отключить NSTimer? - PullRequest
1 голос
/ 09 декабря 2011

Я пишу приложение, в котором контроллер основного вида имеет несколько NSTimers, которые управляют различными событиями.Это работает хорошо, за исключением нескольких странных случаев, когда таймеры, кажется, не отключаются, когда я вытаскиваю этот контроллер основного вида из моего стека навигации.

Мой вопрос заключается в следующем: каков правильный способ аннулировать илиотключить NSTimer, чтобы он больше не вызывался?

Прямо сейчас я создаю экземпляр NSTimer следующим образом:

alertViewTimer = [NSTimer scheduledTimerWithTimeInterval:2 target:self selector:@selector(alertTimer) userInfo:nil repeats:YES];

И я использую этот макрос для аннулирования NSTimer:

#define TimerInvalidateAndNil(A) \
if(A != nil) \
{\
if([A isValid])\
{\
[A invalidate]; \
}\
A = nil; \
}
...