---- вопрос решен мной, информация обновлена в моем комментарии ----
У меня есть контроллер представления, который имеет периодический NSTimer. Я вызываю аннулирование таймера при удалении контроллера вида:
- (void)dealloc
{
NSLog(@"dealloc called");
if ([myTimer isValid]) {
[myTimer invalidate];
}
[super dealloc];
}
Я обнаружил непредвиденное поведение, которое [myTimer invalidate] немедленно вызывает callloc моего контроллера представления. Вот почему я поставил проверку isValid, чтобы избежать сбоев. Но [super dealloc] будет вызван дважды и завершит работу приложения.
Итак, у меня есть два вопроса:
Как правильно отключить таймер?
Почему недействительный метод таймера вызывает метод dealloc контроллера представления?
Спасибо
Leo