Захватывайте [weak self] в замыкании Task, проверяйте self, отменяйте задачу в deinit/onDisappear, не удерживайте бесконечные циклы без cancellation.
Разбор
Task { [weak self] in guard let self else { return } ... }.
- Сильный захват self в долгой Task утечёт экран.
- Храните
Task handle для cancel.
- Structured задачи внутри метода часто безопаснее stored property Task.
Итог
Слабый захват и отмена — обязательны для долгих Task в UI-объектах.