If two objects support strong links to each other (that is, save each other), you may have what is called a โsave cycleโ on your hands. No object will ever be released, because the other has a strong reference to it (saves it), and therefore it will never give up its link (release) of another object.
This situation is typical for delegates, where one object (calls it A) creates another (B) and sets itself up as delegate B. If A has a strong link to B, so B will not be released, and B also has a strong link to A, you have a reference loop. To avoid this, it is not recommended for objects to maintain or maintain strong references to their delegates. Link B to weak, not strong, and the problem goes away.
Caleb source share