Это правильное резюме подсчета ссылок Cocoa?

Вот мое понимание этого:

Объект только сохраняется (счетчик ссылок увеличивается):

  1. когда вызывается init из NSObject.
  2. когда вызывается retain.

Объекты только освобождаются (счетчик ссылок уменьшается):

  1. когда вызывается release.
  2. когда пул автоосвобождения, содержащий объект, опорожняется

И чтобы уточнить, автовыпуск не сохраняет, а просто помещает объект в самый верхний пул в стеке пула автовыпуска.


person Sam Washburn    schedule 01.03.2010    source источник


Ответы (1)


No.

init не сохраняет, и существуют различные методы, о которых вы не упомянули. В Руководство по программированию управления памятью для Cocoa.

(Есть два известных мне исключения: методы NSPropertyListSerialization, которые предоставляют сохраненную строку ошибки по ссылке.)

person Jens Ayton    schedule 01.03.2010
comment
Документы NSPropertyListSerialization прямо сообщают вам, что рассматриваемый метод также нарушает правила. - person Chuck; 01.03.2010
comment
Еще одно хорошее резюме содержится в Cocoa Core Competencies: разработчик .apple.com/mac/library/documentation/Общие/ - person Peter Hosey; 02.03.2010