В документации Apple это говорит:
Платформы AppKit и UIKit обрабатывают каждую итерацию цикла событий (например, событие нажатия кнопки мыши или касание) в блоке пула автоматического освобождения. Поэтому обычно вам не нужно самостоятельно создавать блок пула автоматического освобождения или даже просматривать код, который используется для его создания.
Это должно быть очевидно, но я все равно попрошу подтверждения.
Если я разрабатываю то, что в конечном итоге станет фоновым процессом (через Grand Central Dispatch), но для простоты я сначала просто помещаю его в viewDidLoad самого первого загружаемого представления, чтобы мое представление фактически не отображалось на экране до тех пор, пока все, что (скажем) 2 минуты обработки выполнено, затем в течение этих двух минут весь этот пул автовыпуска по умолчанию никогда не освобождается, потому что он еще не прошел итерацию цикла событий, верно? Было бы просто безумием услышать «нет», но я застрял в этой растущей проблеме с памятью, поэтому я собираюсь попросить подтверждения и надеяться на хорошие новости.
Если это так, я должен поставить свой собственный блок (блоки) автоматического освобождения. Мне по-прежнему нужны блоки автоматического освобождения, если обработка выполняется в фоновом процессе через GCD, верно?