Работа escaping и nonescaping в Swift
Согласно документации, вы обязаны пометить замыкание, передаваемое в функцию в качестве параметра, ключевым словом
@escaping, если оно будет вызвано после возвращения из функции.
Иными словами, если замыкание (
closure) будет вызвано асинхронно внутри (
callback) или за пределами (
delegate) функции, то вы должны его пометить как
@escaping.
По сути
@escaping позволяет вам отложить выполнение передаваемого в качестве параметра замыкания до нужного вам момента (например, по срабатыванию таймера или по завершению асинхронной операции).
Если вы попробуете присвоить non-escaping замыкание в свойство класса, структуры или перечисления вы получите compile-time ошибку.
Индивидуальное, дистанционное обучение программирование
подробнее
Возврат к списку