這是我早就應該清除的事情,但我只需要知道在以下情況下釋放的最佳做法。取消分配IBOutlet和實例變量
在我的頭文件,我宣佈一個IBOutlet
參考如下:
@interface Test : UIViewController {
UIButton *_loginBtn;
}
@property (nonatomic, retain) IBOutlet UIButton *loginBtn;
而且在實現文件我的實例變量的財產關聯和釋放如下:
@implementation Test
@synthesize loginBtn = _loginBtn;
...
- (void) dealloc {
[_loginBtn release];
self.loginBtn = nil;
[super dealloc];
}
- (void) viewDidUnLoad {
[_loginBtn release];
self.loginBtn = nil;
[super viewDidUnLoad];
}
我正確的解除分配實例變量並將屬性設置爲nil
並在viewDidUnLoad
和dealloc
方法中都這樣做?
我真的期待[_loginBtn release];結合self.loginBtn = nil;墜毀。第一個將釋放該值,但保留該值。然後第二個將嘗試再次釋放該值,同時將其設置爲零。這將是一個雙重版本。 –