Я действительно не знаю, когда мне нужно скопировать блок.
В документации указано when you expect the block to be used after destruction of the scope within which it was declared
.Когда мне нужно скопировать блок?
Нужно ли его копировать, когда я использую их как методы обратного вызова? Под копией я имею в виду создание свойства копирования для своего блока и сохранение там блока или его отправку. Область видимости, вероятно, уничтожается, когда загрузка или что-то подобное завершено. Так что мне нужно скопировать блок в этом случае? Могу ли я создать круговые ссылки таким образом?
Прямо сейчас у меня есть класс загрузчика (только для проверки блоков, для меня слишком опасно использовать его), в котором используется блок завершения, и когда я копирую блок, контроллер представления, который создал блок и класс загрузчика, Не выпущено.
Можете ли вы привести несколько хороших примеров, особенно используя их для завершения асинхронных операций, таких как загрузка файлов?
Спасибо.
«Большинство методов, которые принимают обратные вызовы, скопируют блок для вас». Итак, если я метод, который принимает блок обратного вызова для некоторой операции async, мне нужно его скопировать? –
@gyozokudor Да, это будет падать под футляром 2 – cobbal