On Sep 10, 2013, at 21:52 , Ken Thomases <k...@codeweavers.com> wrote:

> 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,

Hi Ken,

I should have been more clear:  this technique is not needed for ordinary 
methods or ordinary local variables.  I use it for those types of methods that 
are run asynchronously and that therefore want to retain a temp.  Those sorts 
of methods are not re-entrant anyhow.

Cheers,

Marcel


_______________________________________________

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