Tested app in Instrumens for memory leak getting multiple leaks for using multiple times pauseTimer and resumeTimer.
Defined in m file
NSDate *pauseStart, *previousFireDate;
-(void)pauseTimer{
pauseStart = [[NSDate dateWithTimeIntervalSinceNow:0] retain];
previousFireDate = [[timer fireDate] retain];
[timer setFireDate:[NSDate distantFuture]];
}
-(void)resumeTimer{
float pauseTime = -1*[pauseStart timeIntervalSinceNow];
//[timer setFireDate:[previousFireDate initWithTimeInterval:pauseTime sinceDate:previousFireDate]];
[timer setFireDate:[NSDate dateWithTimeInterval:pauseTime sinceDate:previousFireDate]];
}
how to fix this memory leak for pauseTimer and resumeTimer. User can use PauseTimer and resumeTimer multiple times.
Appreciate help.
Thanks.
You are retaining the values for
pauseStartandpreviousFireDateeach time thepauseTimermethod is fired. You need to release the previous values before retaining the new values in order to avoid a memory leak.Easiest solution is to create two retained properties for those values (possibly in a class extension), so when you set new values, the release is handled for you. (Just don’t forget to release the values in your dealloc method to also avoid leaks.)