Вызов -retain несколько раз на одном и том же объекте - PullRequest
1 голос
/ 20 июля 2011

Что происходит, когда вы вызываете -retain на объекте много раз?Можно ли просто выпустить его один раз, когда вы закончите с ним?

1 Ответ

6 голосов
/ 20 июля 2011

Обычно вам нужно освобождать объект столько раз, сколько он удерживается - вот почему он называется подсчетом ссылок.Держатели указателей на ваш объект вызывают -retain, чтобы сохранить его в памяти.Он будет освобожден только после того, как это будет -release правильное количество раз.Следовательно, сохранение его более чем необходимо - это выделение памяти сверх срока ее полезного использования - и это называется утечкой памяти.Инструмент Xcode Instruments имеет инструмент анализа утечки памяти.

Вот хорошее описание Управление памятью

Я также согласен с @Chris, который комментирует выше этот ответ , описывающий, как работает сохранение / освобождение, очень хорош.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...