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/archive%40mail-archive.com

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

Reply via email to