Pregunta

¿Qué sucede si libero un objeto lanzado automáticamente? Es un UIButton lanzado automáticamente que quiero lanzar y la única forma de crear un UIButton es usar el método de conveniencia buttonWithType :. ¿Se liberará de la memoria como un objeto normal? ¿O debería dejar que el autoreleasepool se encargue de ello? En primer lugar, no lo habría lanzado automáticamente si pudiera.

¡Gracias!

¿Fue útil?

Solución

Debería dejar que el grupo de liberación automática se encargue de ello. Una vez que agregue su botón a una vista principal, esa vista lo retendrá, y el grupo de liberación automática se encargará del controlador de liberación automática.

La forma más fácil de pensarlo es en términos de propiedad & # 8212; usted no '' posee '' la referencia que obtuvo a través de un método conveniente, por lo que no necesita molestarse en liberarla a menos que también la conserve.

Otros consejos

Solo debe liberar un objeto de su propiedad. + buttonWithType: no devuelve un objeto propio, por lo que no debe liberarlo.

Revise las Reglas de propiedad de objetos de cacao .

¿Por qué estás tratando de evitar un objeto lanzado automáticamente aquí? Presumiblemente, está creando el botón porque lo está utilizando y lo está insertando en una jerarquía de vistas, por lo que no hay una razón real para acelerar el drenaje del grupo de liberación automática que contiene el botón.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top