Я прочитал подсказку здесь в SO публикуя лучшие практики :
"Если вы передаете себя в качестве делегата другому объекту, сбросьте делегат этого объекта до того, как вы освободите его."
Пример:
- (void)dealloc {
if (self.someObject.delegate == self) {
self.someObject.delegate = NULL;
}
self.someObject = NULL;
[super dealloc];
}
Звучит разумно, но я не уверен, в каких случаях мне нужно это делать.
Например, у меня есть контроллер вида, подобный показанному ниже:
- (void) viewDidLoad {
myTextField.returnKeyType = UIReturnKeyDone;
myTextField.delegate = self;
}
Могу ли я (должен ли) установить для делегата значение NULL в этом случае, например:
- (void) dealloc {
if (self.myTextField.delegate == self) {
self.myTextField.delegate = NULL;
}
[myTextField release];
[super dealloc];
}