Tengo una pregunta rápida sobre ARC en iOS. (Perdón por haber hecho muchas de estas preguntas, pero estoy tan confundido con respecto a la administración de la memoria). Es importante tener en cuenta que nunca he usado el viejo sistema de mantenimiento de memoria (retain
, release
, assign
... etc.) así que no sé realmente qué significan esos términos.¿Cuándo se lanzan las propiedades fuertes en ARC en iOS?
En este momento estoy confundido con respecto a lo que tengo que hacer para asegurarme de que las propiedades fuertes se liberen correctamente. Por ejemplo, supongamos que estoy haciendo una aplicación de la escuela y mi objeto School
contiene fuertes referencias de propiedad a 5 objetos diferentes Child
(no en una matriz). Cada objeto Child
tiene un puntero fuerte (propiedad) a un objeto Book
.
Si elimino uno de los objetos Child
de mi escuela (digamos haciendo su propiedad = cero, o cambiando mi propiedad para apuntar a un nuevo objeto), ¿se liberará correctamente su Book
? ¿Qué debo hacer para asegurarme de que este sea el caso? ¿Debo escribir self.myBook = nil
en un método dealloc
? ¿Qué pasa si Child
fuera un Controlador de vista, tendría que escribir self.myBook = nil
en el método viewDidUnload?
Me estoy enfocando solo en iOS 5 (y versiones posteriores), por lo que la forma anterior de administración de memoria realmente no me importa.
Sugiero que lea esto: http://clang.llvm.org/docs/AutomaticReferenceCounting.html –
Gracias por la sugerencia. Lo echaré un vistazo. – Nosrettap