¿Cómo funciona el grupo de liberación automática de NSAutoreleasePool?

Según tengo entendido, todo lo que se cree con una asignación , un nuevo o una copia debe liberarse manualmente. Por ejemplo: int main(void) { NSString *string; string = [[NSString alloc] init]; /* use the string */ [string release]; } Mi pregunta, sin embargo, ¿no sería esto igualmente...