Мне просто было любопытно, как я подойду к этому. Если бы у меня была функция, и я хотел бы, чтобы что-то произошло, когда она будет полностью выполнена, как бы я добавил это в функцию? Спасибо
function
swift
completionhandler
traw1233
источник
источник
Ответы:
Допустим, у вас есть функция загрузки для загрузки файла из сети и вы хотите получать уведомление, когда задача загрузки завершена.
Надеюсь, поможет.
источник
Мне было трудно понять ответы, поэтому я предполагаю, что у любого другого новичка, такого как я, может быть такая же проблема, как и у меня.
Мое решение делает то же самое, что и главный ответ, но, надеюсь, немного более ясное и легкое для понимания для новичков или людей, которые просто не понимают в целом.
Чтобы создать функцию с обработчиком завершения
использовать функцию
Ваш результат будет
Надеюсь это поможет!
источник
Простой пример Swift 4.0:
Как это использовать:
источник
Для этой цели мы можем использовать замыкания . Попробуйте следующее
В какой-то момент мы можем вызвать эту функцию, как указано ниже.
Пожалуйста, перейдите по следующей ссылке для получения дополнительной информации о закрытии .
https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Closures.html
источник
Swift 5.0 +, простой и короткий
пример:
Стиль 1
Стиль 2
Использование:
Вывод
источник
Я немного запутался в обработчиках завершения, сделанных на заказ. В вашем примере:
Допустим, у вас есть функция загрузки для загрузки файла из сети и вы хотите получать уведомление, когда задача загрузки завершена.
Ваш по-
// download code
прежнему будет выполняться асинхронно. Почему код не будет идти прямо наlet flag = true
и ,completion Handler(success: flag)
не дожидаясь вашей загрузки кода , который будет закончен?источник
В дополнение к вышесказанному: Может использоваться скользящее закрытие .
источник