Частичное владение
При передаче объекта от создателя другим объектам нужно увеличивать счетчик ссылок (retain), чтобы создатель не удалил объект, пока он нужен другим объектам. Другие объекты после того, как переданный объект перестал был нужен посылают ему release, т.е. уменьшают число ссылок на 1.
Сообщение autorelease приводит к автоматической отправке сообщения release при очистке пула, в котором регистрируется autorelease-объект. Этому объекту будет отправлено столько сообщений release, сколько ему было послано сообщений autorelease.
Объекты, которым было послано сообщение autorelease, можно безопасно использовать после возвращения из метода, где они были созданы. За их уничтожение отвечает пул. За уничтожение обычных объектов отвечает получатель.
Если autorelease-объект гарантировано нужен получателю, то нужно увеличить на 1 счетчик ссылок перед отправкой объекта получателю (т.е. отправить и retain и autorelease).
У объекта есть указатель isa на объект его класса. С помощью него выбирается метод, отвечающий на сообщение.
Alloc инициализирует isa и устанавливается счетчик ссылок в 1
Комментариев нет:
Отправить комментарий