Установлено на nil в viewDidUnload, но выпускается в dealloc

Я весь день читал о том, почему для viewDidUnload необходимо установить значение nil и освободить его в dealloc. Все статьи повторяют одно и то же. Да, я знаю, что закулисные инструкции разные, но каковы практические различия?

var = nil

  1. Если var является сохраняемым свойством, освободить память, на которую указывал старый объект var.
  2. Установите для var значение nil.

[выпуск var]

  1. Reclaim memory var указывает на.
  2. var теперь не указывает ни на что, что эквивалентно nil

Для меня оба способа восстановления памяти имеют одинаковый конечный результат. Так почему одно лучше другого? В каждой книге говорится, что мне нужно установить значение nil в viewDidUnload и отпустить в dealloc . Кто-то должен указать на плохие вещи, которые могут произойти, если представление будет выпущено в viewDidUnload и обнулено в dealloc .

.h

#import <UIKit/UIKit.h>
@interface DisclosureDetailController : UIViewController {
 UILabel* label;
}
@property (nonatomic, retain) IBOutlet UILabel* label;
@end

.m

#import "DisclosureDetailController.h"
@implementation DisclosureDetailController
@synthesize label;
- (void)viewDidUnload {
 self.label = nil;
 // OR [self.label release];
 [super viewDidUnload];
}
- (void)dealloc {
 [self.label release];
 // OR self.label = nil;
}
10
задан JoJo 20 April 2011 в 22:19
поделиться