Как правильно применять Timer retain cycle в реальном iOS проекте?

iOS / SwiftMiddleMemory ManagementПрактикаios|swift|memory management|timer|timer retain cycle

Что хотят услышать интервьюеры:

Практический подход: используйте Timer retain cycle там, где оно решает конкретную задачу, а не ради моды или краткости.

  • Определите слой: UI, domain, data, infrastructure или tooling.
  • Проверьте lifecycle: создание, повторное появление, отмена, deinit и background/foreground.
  • Добавьте обработку ошибок, edge cases и возможность тестирования.

Ответ:

Нюанс: Timer удерживает callback, callback может удержать self.Хороший ответ: кандидат объясняет trade-off и последствия для поддержки приложения.

timer = Timer.scheduledTimer(withTimeInterval: 1, repeats: true) {
  [weak self] _ in self?.tick()
}

Источники

Похожие вопросы