Re: ARC vs Manual Reference Counting
Re: ARC vs Manual Reference Counting
- Subject: Re: ARC vs Manual Reference Counting
- From: Ken Thomases <email@hidden>
- Date: Tue, 10 Sep 2013 14:52:09 -0500
On Sep 9, 2013, at 3:49 AM, Marcel Weiher wrote:
> The pattern I adopted long ago to avoid that sort of situation is to have an instance variable for my temps, in which case the code becomes:
>
> [self setTemp:newObject];
> … do stuff …
> [self setTemp:nil];
>
> or if you prefer dot syntax:
>
> self.temp = newObject;
> … do stuff …
> self.temp = nil;
>
> Even if you forget nilling, you at most have an extended lifetime of an object, not a leak. I also generally do the same in initialization code (but not in dealloc). For me, that simply got rid of reference-counting pain. Completely. Memory management is mediated by accessors, always. And accessors are generated.
This technique is not safe for reentrant methods, whether due to multi-threading or on the same thread through (possibly indirect) recursion. An automatic (local) temporary variable is private to that stack frame, while an instance variable is shared across the object, which usually means across many stack frames.
Something to keep in mind before adopting this.
Regards,
Ken
_______________________________________________
Cocoa-dev mailing list (email@hidden)
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:
This email sent to email@hidden