😵💫 Using defer in Swift to manage state cleanup
В
Swift оператор defer позволяет гарантировать выполнение кода очистки при выходе из текущей области видимости, независимо от того, завершилась ли функция успешно или с ошибкой.Использование
defer уменьшает вероятность ошибок в коде, особенно в больших функциях, где могут быть добавлены новые возвраты или отмены задач.Defer гарантирует выполнение кода очистки в различных сценариях: нормальное завершение функции, выброс ошибки, ранний возврат или отмена задачи во время ожидания.Пример использования defer включает управление индикатором загрузки, который показывается во время выполнения асинхронной операции и скрывается по завершении, что предотвращает пропуск очистки состояния:
func fetch() async {
isLoading = true
defer { isLoading = false }
do {
articles = try await service.fetchArticles()
} catch {
self.error = error.localizedDescription
}
}👉Новости 👉База вопросов