iOS inicializando y devolviendo un nuevo object en un método auxiliar

Estoy tratando de entender esto desde el punto de vista de la gestión de la memory: en una class, estoy haciendo un método auxiliar que creará un object NSDictionary para mí.

+(NSDictionary*) getTheDictionary{ return [[[NSDictionary alloc] initWithObjectsAndKeys: @"value", @"key", nil] autorelease]; } 

De otra class, uso el método.

 NSDictionary* theDictionary = [HelperClass getTheDictionary]; 

¿Es suficiente solo tener "autorelease" en la statement de devolución? ¿También necesito una autorización automática en el dictionary?

getTheDictionary devuelve un object autoelevado, lo que significa que el object es válido en el método de llamada, pero que no es propiedad de quien llama. Por lo tanto, el método de llamada no debe liberar o autorizar ese object.

Se liberará cuando finalice la agrupación de autorelease actual, por ejemplo, cuando el control del progtwig regrese al bucle de evento principal.