 <p>In the code you have posted above, there is no retain cycle.</p> <p>A retain cycle would be <code>self.A = self;</code> or more likely, <code>self.A.someStrongProperty = self</code>.</p> <p><strong>Edit:</strong> In the case you have edited above, assuming <code>self</code> is a view controller, it would not deallocate because of the retain cycle. You should change your <code>someStrongProperty</code> to be a <code>weak</code> property, which will prevent the retain cycle.</p>