Почему мы должны выпускать?

Я часто вижу, когда мы выпускаем объект ab, мы сразу устанавливаем его на ноль. Я знаю, что release и nil освобождают старое значение, связанное с объектом, но в случае освобождения он оставляет объект как висячий указатель, поэтому мы должны установить его равным nil.

Поэтому мой вопрос заключается в том, что если nil освобождает старое значение объекта и устанавливает для него значение nil, почему бы нам не использовать только nil, почему мы также должны использовать release.

Way1:

MyClass *obj = [[MyClass alloc] init];
[obj release];
obj = nil;

Way2:

MyClass *obj = [[MyClass alloc] init];
obj = nil;

Какова реальная разница в way1 и way2, если использовать way1, почему не использовать только way2?

Ответы на вопрос(2)

Ваш ответ на вопрос