Я весь день читал о том, почему для viewDidUnload необходимо установить значение nil и освободить его в dealloc. Все статьи повторяют одно и то же. Да, я знаю, что закулисные инструкции разные, но каковы практические различия?
var = nil
[выпуск var]
Для меня оба способа восстановления памяти имеют одинаковый конечный результат. Так почему одно лучше другого? В каждой книге говорится, что мне нужно установить значение 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;
}