Debería establecer el delegado en nil en la clase utilizando el delegado o en la clase en sí

Si la clase A está utilizando la clase B y la clase A es el delegado de la clase B, ¿está bien si el delegado se establece en nulo en el dealloc de la clase B? He visto un código que generalmente restablece al delegado a nil dentro del dealloc de clase A, pero no estaba seguro de la verdadera diferencia al hacerlo de una manera u otra.

p.ej. Esta es la forma habitual:

// somewhere in class A

- (void) someFunc {
  self.b = [[B alloc] init];
  self.b.delegate = self;
}

- (void) dealloc {
  self.b.delegate = nil;
  [self.b release];
}

Respuestas a la pregunta(3)

Su respuesta a la pregunta