Strong/retain for next, weak/assign for previous. On Nov 14, 2012, at 7:59 PM, William Squires wrote:
> Let's say I have: > > @interface Thing : NSObject > > @property (nonatomic, ???) Thing *nextThing; > @property (nonatomic, ???) Thing *prevThing; > > @end > > and somewhere I keep a reference to the 'head' of this doubly-linked list. > What should ??? be, "retain", or "assign" in order to work properly? If I was > using ARC instead, would they be "strong" or "weak"? Assuming the list > doesn't contain circular references (i.e. a<->b<->c<->a) will releasing my > 'head' reference properly clean up if I have: > > "doublist.h" > @class Thing; > > @interface DoublyLinkedListClass > > @property (nonatomic, retain) Thing *head; > > @end > > "doublist.m" > @implementation DoublyLinkedListClass > > @synthesize head = _head; > > … > > -(void)dealloc > { > self.head = nil; // Is this begging for a problem? no in ARC (but it's unnecessary), yes in MRC; you should [head release]; instead, or you'll leak memory. -Dan _______________________________________________ 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