Re: __attribute__((NSObject)) not behaving as expected
Re: __attribute__((NSObject)) not behaving as expected
- Subject: Re: __attribute__((NSObject)) not behaving as expected
- From: David Duncan <email@hidden>
- Date: Fri, 24 Jan 2014 11:02:58 -0800
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 <email@hidden> 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 (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
--
David Duncan
_______________________________________________
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