2010-10-28 3 views
0

У меня возникли трудности с пониманием того, КОГДА создаются и выпускаются пулы автозапуска в приложениях AppKit.Пулы автоопределения в приложениях appkit

Например, если у меня есть класс ApplicationController, который переопределяет init, существует ли пул автоопределений, который создается до его запуска и истекает после его завершения?

ответ

1

Основная тема приложения AppKit запускает NSRunLoop для обработки событий. NSRunLoop создает новый пул автозапуска каждый раз, когда обрабатывает новое событие (или таймер) и истощает его, как только поток управления возвращается в NSRunLoop. Таким образом, по сути, каждый проход через цикл цикла имеет новый пул авторезистов.

+0

Итак, когда будут выпущены объекты, созданные в init? O :-) – cfischer

+1

После того, как вы запустили runloop, если вы все что-нибудь отредактируете, он будет выпущен после того, как поток управления вернется в runloop. Единственные исключения - если вы autorelease что-то внутри 'main()' (которое находится вне цикла цикла) или в другом потоке. –

+2

Фернандо: Они будут выпущены, когда они будут выпущены. Объекты, которые вы добавляете в пул автономии, выходят, когда пул сливается. Пул, создающий стоки при сливе; пул, созданный циклом запуска, стекает, когда ... ну, ответ говорит вам об этом. –

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

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