Знает ли кто-нибудь, когда самое лучшее время, чтобы остановить NSTimer, который хранит ссылку внутри UIViewController, чтобы избежать сохранения цикла между таймером и контроллером?
Вот вопрос более подробно: у меня есть NSTimer внутри UIViewController.
Во время ViewDidLoad контроллера просмотра я запускаю таймер:
statusTimer = [NSTimer scheduledTimerWithTimeInterval: 1 target: self selector: @selector(updateStatus) userInfo: nil repeats: YES];
Приведенное выше приводит к тому, что таймер удерживает ссылку на контроллер вида.
Теперь я хочу освободить свой контроллер (родительский контроллер выпускает его, например)
возникает вопрос: где я могу поместить вызов [statusTimer invalidate], чтобы заставить таймер освободить ссылку на контроллер?
Я попытался поместить его в ViewDidUnload, но это не срабатывает, пока в представлении не появится предупреждение о памяти, поэтому это не хорошее место. Я попробовал dealloc, но dealloc никогда не будет вызван, пока таймер жив (проблема с курицей и яйцом).
Любые хорошие предложения?