free()
- это функция C, которую вы используете для удаления ненужной памяти, которую вы получили с помощью malloc()
, или другой задокументированной функцией free () для освобождения ее памяти, например, strdup()
.
-dealloc
- это селектор Objective-C, который отправляется средой выполнения Objective C объекту, когда объект больше не принадлежит какой-либо части приложения.
-release
- это селектор, который вы отправляете объекту, чтобы указать, что вы отказываетесь от владения этим объектом. Если объект не принадлежит никому, среда выполнения отправляет ему сообщение -dealloc
.
-autorelease
- селектор, который вы отправляете объекту, чтобы указать, что вы отказываетесь от владения объектом. Однако, если сейчас никому не принадлежит объект, окончательный -dealloc
будет отложен до некоторой неопределенной более поздней точки. Фактически, то, что вы на самом деле делаете, - это передаете свое право собственности в пул авто-релизов, который затем освобождает его, когда он сам освобождается (или сливается).
Вы никогда не должны отправлять -dealloc
объекту, кроме super
в собственном методе -dealloc
объекта.