Compiler folks could explain this better, but the root issue is that 
__attribute__((NSObject)) doesn’t do as much as you might expect given the way 
you’ve declared it. Its better in the long run to just not rely upon it.

On Jan 24, 2014, at 10:58 AM, Kevin Meaney <k...@yvs.eu.com> wrote:

> Building on and compiling for minimum system of 10.9. Xcode 5.0.1
> 
> Using ARC.
> 
> I have a property declared so:
> 
>       @property (readonly, strong) __attribute__((NSObject)) CGContextRef 
> context
> 
> I have a designatied initializer defined like so:
> 
>       -(instancetype)initWithCGContext:(CGContextRef)theContext
> 
> The object is alloc'd and the init method is called immediately after the 
> context is created. Immediately after the init method returns the context is 
> released.
> 
> If in the implementation of the init method I have:
> 
>       self->_context = theContext
> 
> Then the first time I try and access the context I get a memory access 
> exception. If I replace that with:
> 
>       self->_context = CGContextRetain(theContext);
> 
> Then I get a memory leak of the context when my object is destroyed.
> 
> If however I just declare my property like so:
> 
>       @property (readonly) CGContextRef context;
> 
> And in the initializer I use:
> 
>       self->_context = CGContextRetain(theContext);
> 
> And add a dealloc:
> 
>       -(void)dealloc
>       {
>               CGContextRelease(self->_context);
>       }
> 
> Then everything works as desired.
> 
> I'd like to know what I'm doing wrong.
> 
> Kevin
> 
> 
> _______________________________________________
> 
> 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/david.duncan%40apple.com
> 
> This email sent to david.dun...@apple.com

--
David Duncan


_______________________________________________

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