предположим, у меня есть кнопка с присоединенным IBAction, которая при нажатии запускает несколько действий, НО должна запускать определенное действие с задержкой в одну секунду, И только если пользователь не нажимает кнопку новое время в этой задержкеодной секунды.Код выглядит следующим образом:
@interface Image : UIView {
NSTimer *timer;
}
...other things...;
@end
@implementation Image
-(IBAction)startStopTimer{
...do something...;
...do something...;
[timer invalidate];
timer = [[NSTimer scheduledTimerWithTimeInterval:0.7
target:self
selector:@selector(delayedAction)
userInfo:nil
repeats:NO] retain];
}
-(void)delayedAction{
...do other things...;
}
@end
Как есть, этот код работает очень хорошо: «delaiAvance» срабатывает только в том случае, если пользователь НЕ нажимает кнопку еще раз и ждет по крайней мере одну секунду.
Большая проблема: при каждом срабатывании таймера происходит утечка памяти.
Итак, вопрос: как и где я должен выпустить этот NSTimer?
([освобождение таймера] в методе dealloc не работает.)