2015-06-21 3 views
-4

Кто звонит в авторизованный пул или кто его управляет. Я вызываю autorelease на моей переменной, которая находится внутри функции, но кто управляет этим автоответчиком, вызывающей функцией или функцией вызывающего абонента, или кто это делает?Кто звонит в авторизованный пул

+0

Я не очень хорошо понимаю, почему downvotes. Это законный вопрос, связанный с правильным использованием авторекламы и ее использованием. (Хотя он * * включен в документацию ..) – user2864740

ответ

1

Прежде всего, если вы говорите autorelease, не делайте этого. Прекратите использование ручного управления памятью и используйте ARC. Он знает больше, чем вы.

Хорошо, допустим, вы do скажите autorelease. Затем он помещается в пул авторезистов, и его счет сохранения остается увеличенным. Его количество счета будет уменьшаться снова, когда пул авторезистов сливается. Когда , что происходит, зависит от того, о каком авторекладе вы говорите.

  • Если вы на самом деле сделал это autorelease бассейн, то это истощает, когда вы говорите его drain. В ARC это происходит, когда мы подошли к концу блока директив @autoreleasepool{}.

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

+0

Моя книга поможет вам понять механизм авторекламы: http://www.apeth.com/iOSBook/ch12.html#_autorelease – matt

+0

Спасибо Мэтт, я использую ARC, но копал глубоко в автореферате ... Итак, вопрос ... –

+0

Итак, ответ ... – matt