Alocação usando temp, por que isso é melhor?

//.h file
@property(nonatomic, retain) NSMutableDictionary *data;

//.m file
NSMutableDictionary *temp = [[NSMutableDictionary alloc] init];
self.data = temp;
[temp release];

Por que é assim (usando variável temporária) é melhor que isso

self.data = [[NSMutableDictionary alloc] init];

Qual é a diferença

questionAnswers(1)

yourAnswerToTheQuestion