У меня есть подкласс UIView, который не освобождается. Я знаю, что только один класс создает экземпляр моего представления. На мой взгляд, у меня есть NSTimer ivar. Если я закомментирую этот таймер и когда я нажму кнопку отмены, которая находится на этом контроллере представления, вызывается расселение в этом представлении. Если я не закомментирую таймер, Dealloc никогда не вызывается.
//CustomUIView
- (id) initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
_pollTimer = [[NSTimer scheduleTimerWithTimeInterval:0.2 target:self selector:@selector(onPollTimerFired:) userInfo:nil repeats:YES] retain];
}
}
Я хочу сохранить ссылку на этот таймер, потому что бывают случаи, когда я хочу приостановить таймер. Теперь у меня может быть свойство в моем представлении для таймера, а в методе Dealloc класса, который имеет ссылку на мой пользовательский интерфейс, я могу аннулировать его перед выпуском указанного представления. Мне не очень нравится такой подход, потому что я не хочу показывать этот таймер внешним объектам.
У кого-нибудь есть идеи?