Entiendo que debe tener cuidado con autorelease
en iOS. Tengo un método que devuelve un objeto que es alloc
s que necesita la persona que llama, por lo que en esta situación, tal como lo entiendo, debo enviar autorelease
al objeto en el destinatario antes de que regrese.¿Cuándo se produce la liberación automática en Cocoa Touch?
Esto está bien, pero una vez que el control vuelve al teléfono (es decir, después de que se haya procesado el clic de mi botón) parece que se ha liberado el grupo de liberación automática. Sospecho que así es como debería ser, pero me pregunto cuál es la mejor práctica para esta situación.
He recurrido a enviar un mensaje retain
de la persona que llama para que el objeto no sea liberado y luego liberarlo explícitamente en dealloc
.
¿Es este el mejor enfoque?
Estrictamente hablando, incluso que no está garantizada, ya que es posible crear un grupo en un método, AutoRelease algunos objetos, y vaciar la piscina en otro método. Un diseño dudoso, pero válido: los objetos durarán desde la creación de la agrupación hasta el drenaje de la piscina, independientemente del método que haya creado la agrupación. –