Разница между сливом, выпуском, деаллоком и удержанием в Objective-C / - PullRequest
6 голосов
/ 02 ноября 2009

Привет, я хочу знать разницу между сливом, выпуском, освобождением и сохранением в Objective-C.

1 Ответ

23 голосов
/ 02 ноября 2009
  • retain увеличить счетчик ссылок на объект
  • release уменьшает ссылку на объект
  • drain используется вместо выпуска в ТОЛЬКО для объектов NSAutoreleasePool из-за некоторых тайн, связанных с сборкой мусора в Objective C
  • dealloc вызывается системой, когда retainCount объекта достигает 0. Это место, где вы очищаете различные вещи, которые есть у вашего объекта (например, деконструктор или финализатор). Вы должны НИКОГДА не вызывать его напрямую, за исключением вызова [super dealloc] в конце вашей dealloc процедуры.

Вы действительно должны просто прочитать через Apple управление памятью документация .

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