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