Я хотел иметь возможность приостановить / возобновить работу моего NSTimer и нашел ответ ниже :
NSDate *pauseStart, *previousFireDate;
-(void) pauseTimer:(NSTimer *)timer {
pauseStart = [[NSDate dateWithTimeIntervalSinceNow:0] retain];
previousFireDate = [[timer fireDate] retain];
[timer setFireDate:[NSDate distantFuture]];
}
-(void) resumeTimer:(NSTimer *)timer {
float pauseTime = -1*[pauseStart timeIntervalSinceNow];
[timer setFireDate:[previousFireDate initWithTimeInterval:pauseTime sinceDate:previousFireDate]];
[pauseStart release];
[previousFireDate release];
}
, который работает нормально. Однако, когда я тестирую мое приложение на предмет утечек, оно говорит мне, что здесь есть утечка:
[timer setFireDate:[previousFireDate initWithTimeInterval:pauseTime sinceDate:previousFireDate]];
Кто-нибудь может мне помочь? Из кода, который я использовал, видно, что pauseStart и previousFireDate сохраняются в методе pauseTime и освобождаются в методе resumeTimer.
Большое спасибо
Sam