1

Я прочитал так много обсуждений stackoverflow о том, когда использовать пул @autorelease, один из которых предлагает написать собственный пул @autorelease при создании вторичного потока в вашем приложении и некоторую дискуссию об этом расскажите, что вам не нужно создавать пул @autorelease, Также мне нужно создать внешний пул @autorealease, когда я использую GCD, если я использую GCD, мне нужно создать пул @autorelease

Так что пожалуйста, пожалуйста, любой здесь, исправьте меня о @autorelease, для которого сценарий.

+0

[Это] (http://stackoverflow.com/a/12587187/3541063) может ответить на ваш вопрос. – werediver

+0

См. Мой ответ обновлен для iOS 10+ [здесь] (https://stackoverflow.com/a/47543034/285659) – ribeto

ответ

0

Если ваш блок создает несколько объектов Objective-C, вы можете захотеть заключить части кода вашего блока в блок @autorelease, чтобы обрабатывать управление памятью для этих объектов.

Хотя очереди отправки GCD имеют свои собственные пулы автоопределений, они не дают никаких гарантий относительно того, когда эти пулы сливаются. Если ваше приложение ограничено памятью, создание собственного пула автозапуска позволяет вам освобождать память для автореализованных объектов с более регулярными интервалами.

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

 Смежные вопросы

  • Нет связанных вопросов^_^