Я пишу приложение, в котором контроллер основного вида имеет несколько 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; \
}