On 21 Apr 2014, at 21:09, Andy Lee <ag...@mac.com> wrote:
> 
> The solution is to use a weak reference for one of the properties in the 
> cycle.  In general, if one object conceptually "owns" the other, then the 
> "owning" object uses a weak reference and the "owned" object uses a strong 
> one.  For example, a parent has weak references to its children, and the 
> children have strong references back to the parent.  Similarly, a delegating 
> object has a weak reference to its delegate, which typically (though not 
> necessarily) has a strong reference back to the delegator.

Unless I'm being confused here by your wording. Your recommendation in relation 
to the parent child relationship is completely turned around from what Apple 
suggests:

https://developer.apple.com/library/ios/releasenotes/objectivec/rn-transitioningtoarc/introduction/introduction.html
See section: Use Lifetime Qualifiers to Avoid Strong Reference Cycles

If you are recommending an alternative to what Apple suggests I'd be quite 
interested into hearing the reasons. Do you implement an array of weak 
references to a list of children?

Kevin

> These examples should be familiar from manual memory management.  When 
> implementing the delegate pattern under retain/release, the recommended 
> practice is to have objects not retain their delegate, for the same reason of 
> avoiding retain cycles.



_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to