Retain Cycle in ARC
automatic-ref-counting, objective-c, retain-cycle, xcode
Solution
A retain cycle is a situation when object `A` retains object `B`, and object `B` retains object `A` at the same time*. Here is an example:
@class Child;
@interface Parent : NSObject {
Child *child; // Instance variables are implicitly __strong
}
@end
@interface Child : NSObject {
Parent *parent;
}
@end
You can fix a retain cycle in ARC by using `__weak` variables or `weak` properties for your "back links", i.e. links to direct or indirect parents in an object hierarchy:
@class Child;
@interface Parent : NSObject {
Child *child;
}
@end
@interface Child : NSObject {
__weak Parent *parent;
}
@end
* This is the most primitive form of a retain cycle; there may be a long chain of objects that retain each other in a circle.
Problem
I have never worked on non ARC based project. I just came across a zombie on my ARC based project. I found it was because of retain cycle.I am just wondering what is a retain cycle.Can Could you give me an example for retain cycle?