0
我這裏in a SO best practices posting閱讀提示:何時委託設爲NULL
「如果你傳遞自己作爲一個代表到另一個對象,你的dealloc之前重置該對象的委託」 實例:
- (void)dealloc {
if (self.someObject.delegate == self) {
self.someObject.delegate = NULL;
}
self.someObject = NULL;
[super dealloc];
}
聽起來很有道理,但我不知道在我需要做什麼的情況下。 例如,我有類似下面的圖控制器:
- (void) viewDidLoad {
myTextField.returnKeyType = UIReturnKeyDone;
myTextField.delegate = self;
}
請問I(我應該)設置委託爲NULL在這種情況下,例如:
- (void) dealloc {
if (self.myTextField.delegate == self) {
self.myTextField.delegate = NULL;
}
[myTextField release];
[super dealloc];
}
值得注意的是,你應該使用nil而不是NULL。 [這個SO問題](http://stackoverflow.com/questions/557582/null-vs-nil-in-objective-c)有關於此事的一些討論 – 2011-05-18 21:59:41