Lo que debe saber acerca de la mortal retener ciclo para el desarrollo de aplicaciones ios

ARC funciona muy bien para la gestión de memoria para la aplicación de iOS, excepto en una circunstancia. Es necesario comprender cómo puede surgir esa circunstancia, y lo que tendrá que hacer para evitar que ocurra.

Video: ¡¡ DESCUBRE TU CICLO DE COFRES !! |¿LA VERDAD DEL CICLO DE LOS 500 COFRES? - Clash Royale [WithZack]

Cuando se crea un objeto, el compilador se asegura de que se transfiere la propiedad y todo está bien. El compilador dará a conocer ese objeto cuando se sale del ámbito, por lo que si se trata de una variable de instancia, que permanecerá en su alcance hasta que el objeto en sí se cancela la asignación.

Vas a pasar por este proceso usando un pequeño programa llamado RetainCycle.

Crear un nuevo RetainIt objeto en el viewDidLoad método de su RetainCycleViewController objeto. Se dará a conocer sólo cuando el retainIt variables se sale del ámbito (es __fuerte por defecto). En este caso, se dará a conocer a continuación, desasigna (suponiendo que ningún otro objeto toma la propiedad) en el extremo de viewDidLoad porque el retainIt variable se vaya fuera de alcance:

- (Void) viewDidLoad {[súper viewDidLoad] - RetainIt * retainIt = [[RetainIt nuevo] init] -}

Sin embargo, cuando se crea la RetainIt objeto, en el RetainIt método de inicialización de clase, en eso,se crea una Ciclo objetar y asignarlo a la ciclo variable de instancia que declaró. Como era de esperar, la Ciclo objeto será retenido hasta que el RetainIt objeto se desasigna porque está referenciado por una variable de instancia, que se mantiene en su alcance hasta que se cancela la asignación del objeto:

Video: Ciclo de la muerte de Andreas Munzer(asi murio andreas munzer)

- (Id) init {self = [súper init] - si (auto) {self.cycle = [[Ciclo nueva] init] - cycle.retainIt = auto}} auto-retorno

También, sin embargo, asigna a la Ciclo objetos retainIt propiedad de una referencia de nuevo a la RetainIt objeto. los Ciclo clase es el siguiente:

Ciclo @interface: NSObject @ propiedad RetainIt (fuerte, no atómica) * retainIt - d

Esto significa que el RetainIt objeto no se desasigna hasta que la Ciclo objeto se desasigna, y elCiclo objeto se desasigna sólo cuando el RetainIt objeto se desasigna. ¡Vaya!

Aunque este ejemplo puede parecer un poco artificial, sino que puede ocurrir en la vida real cuando se tiene un objeto con un puntero al objeto que lo crea (ya sea directamente oa través de una cadena de otros objetos, cada uno con una fuerte referencia a la próxima que conduce de nuevo a la primera).

Video: ¿Cómo conocer LOS CICLOS DE CARGA de tu iPhone/iPad?

Los __débiles calificadores de por vida para los objetos se encargan de esto. La solución es hacer que el puntero de vuelta de clasificación para toda la vida __débiles.

@property (débil no atómica,) RetainIt * retainIt-
Artículos Relacionados