Ответ 1
Соответствует ли то же правило блоку который размещен в Центральном центре Очередь отправки и будет запущена на не основной поток? То есть, вам нужно создать NSAutoreleasePool внутри каждый блок вы отправляете на что угодно кроме основной очереди?
Центральная диспетчерская система автоматически управляет пулом автозапуска в очереди. Однако нет никаких гарантий относительно того, когда пул будет истощен; это может быть после обработки одного блока, это может быть после сотен (но, вероятно, не будет).
Итак, если вы выделяете только несколько объектов, не беспокойтесь об этом. Однако, если вы выделяете значительное количество объектов (а так как вы ориентируетесь на среду с ограниченной памятью), вы должны создавать и сливать пулы.
Документация обновлена.
Если ваш блок создает несколько объектов Objective-C, вы можете хотите заключить части кода вашего блока в блок @autorelease, чтобы обрабатывать управление памятью для этих объектов. Хотя отправка GCD очереди имеют свои собственные пулы авторефератов, они не дают никаких гарантий относительно когда эти бассейны сливаются. Если ваше приложение является памятью ограниченный, создание собственного пула авторекламы позволяет высвободить память для автореализованных объектов с более регулярными интервалами.