Зависит от того, что вы подразумеваете под «очисткой памяти».
release
- единственное, что освобождает динамически распределенную память, выделенную alloc
. alloc
всегда должен быть связан с вызовом release
или autorelease
где-нибудь.
Установка переменной на nil
не обязательно освобождает память (см. Ответ drawedward) и может быть источником утечек памяти.
Когда вы видите переменную, установленную на nil
, речь идет о предотвращении ее случайного использования позже после освобождения памяти (это может привести к сбоям). Хотя вы всегда можете установить переменную на nil
после вызова на release
, это действительно вопрос стиля, когда это действительно необходимо. Например, вы не часто видите переменные, установленные на nil
в методе dealloc
класса, поскольку к этому моменту объект больше не сможет случайно использовать такую переменную случайно, так как он обнуляется. 1018 *