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

StackOverflow https://stackoverflow.com/questions/1210662

Вопрос

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

Спасибо!!

Это было полезно?

Решение

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

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

Другие советы

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top