Разработка iPhone - выпуск автоматически выпущенного объекта

Что произойдет, если я отпущу автоматически выпущенный объект? Это автоматически выпущенный UIButton, который я хочу выпустить, и единственный способ создать UIButton - использовать удобный метод buttonWithType :. Будет ли он освобожден из памяти как обычный объект? Или я должен просто позволить автоматическому выпуску пула позаботиться об этом? Я бы вообще не стал делать это автоматически, если бы мог.

Спасибо!!


person mk12    schedule 31.07.2009    source источник


Ответы (2)


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

Проще всего думать об этом с точки зрения владения: вы не «владеете» ссылкой, полученной с помощью удобного метода, поэтому вам не нужно беспокоиться о ее выпуске, если вы ее также не сохраните.

person John Calsbeek    schedule 31.07.2009

Вы должны освободить только тот объект, которым владеете. + buttonWithType: не возвращает принадлежащий объекту, поэтому вы не должны освобождать его.

Ознакомьтесь с Правилами владения объектами какао.

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

person Jim Correia    schedule 31.07.2009