A retener ciclo es una situación cuando el objeto A
conserva objeto B
, y el objeto B
retiene el objeto A
al mismo tiempo *. Aquí está un ejemplo:
@class Child;
@interface Parent : NSObject {
Child *child; // Instance variables are implicitly __strong
}
@end
@interface Child : NSObject {
Parent *parent;
}
@end
usted puede fijar un ciclo en el ARC retienen mediante el uso de __weak
variables o weak
propiedades para sus "enlaces de vuelta", es decir, enlaces para dirigir o padres indirecta, en una jerarquía de objetos:
@class Child;
@interface Parent : NSObject {
Child *child;
}
@end
@interface Child : NSObject {
__weak Parent *parent;
}
@end
* Esta es la forma más primitiva de un ciclo de retención; puede haber una larga cadena de objetos que se retengan en un círculo.
Un zombi no se produce debido a un ciclo de retener. – bbum