Почему мы должны выпускать?
Я часто вижу, когда мы выпускаем объект 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?