2010-01-29 18 views

Respuesta

4

Eso es correcto. Como está inicializando el objeto, es su responsabilidad liberarlo o liberarlo.

Como el conteo de retención en la creación es 1 y desea que no se elimine antes de que el método de llamada tenga la oportunidad de usar el objeto, la liberación automática es el mensaje correcto para enviar.

Si lo hubiera enviado, la memoria se recuperaría inmediatamente. Al enviarlo de forma automática, la memoria no se recuperará hasta que se vacíe el grupo de autorrelease predeterminado, lo que no ocurrirá hasta que el método de llamada haya tenido la oportunidad de retener el objeto si es necesario.

+2

Correcto, pero me gustaría desalentar cualquier mención de recuentos de retención específicos, ya que, en la creación, el recuento de retención puede ser cualquier número dependiendo de los detalles de implementación interna. Mucho más constructivo pensar en retener cuenta como algo que agregas y restas, pero nunca consultas el valor directamente. – bbum

+0

@bbum fair enough – mbarnett

+0

@bbum, comentario increíble, que cambia mi forma de pensar. –

Cuestiones relacionadas