Вам нужно создать NSAutoreleasePool в блоке в GCD?

Обычно, если вы создаете фоновый поток или запускаете NSOperation в NSOperationQueue, вам необходимо создать NSAutoreleasePool для этого потока или операции, поскольку по умолчанию его не существует.

Применяется ли то же правило к блоку, который помещается в очередь Grand Central Dispatch и будет выполняться в неосновном потоке? То есть, вам нужно создать NSAutoreleasePool в каждом блоке, который вы отправляете в какую-либо другую очередь, кроме основной?

В моем ограниченном тестировании я не вижу предупреждений консоли для автоматически выпущенных объектов, которые вы обычно видите с фоновыми потоками или NSOperations. Однако я не могу найти исчерпывающую документацию по этому поводу, поэтому мне было интересно, может ли кто-нибудь указать, где это указано.

73
задан Brad Larson 10 November 2010 в 04:02
поделиться

0 ответов