stratégia do Cocoa para gerenciamento de ponteiro / memór

Eu vejo muitos códigos, principalmente no código de exemplo da Apple, que se assemelham ao seguinte:

   EditingViewController *controller = [[EditingViewController alloc] initWithNibName:@"EditingView" bundle:nil];
    self.editingViewController = controller;
    [controller release];

Existe alguma razão em particular para que a abordagem acima seja benéfica para:

self.editingViewController = [[EditingViewController alloc] initWithNibName:@"EditingView" bundle:nil];

Tentando entender se existe uma estratégia para o exposto acim

Obrigado

questionAnswers(2)

yourAnswerToTheQuestion