Как безопасно освобождать временные ресурсы с defer в Swift
Как безопасно освобождать временные ресурсы с defer в Swift В Swift блок defer выполняется перед выходом из ближайшей области видимости, которую задаёт пара фигурных скобок. Его можно поставить сразу после создания ресурса: код очистки останется рядом с настройкой, но сработает в конце функции, цикла или вычисляемого свойства. Для iOS-разработки автор разбирает два сценария. В первом приложение записывает данные во временный файл, а defer удаляет его даже при раннем выходе после неудачного создания XMLParser. Во втором API наблюдения HealthKit требует вызвать обработчик завершения после обработки данных; defer делает это при выходе из итерации. В статье с примерами кода также показано, как применять приём для снятия блокировок и восстановления изменённого состояния.