Re: How to keep things alive in Arc?
Re: How to keep things alive in Arc?
- Subject: Re: How to keep things alive in Arc?
- From: Roland King <email@hidden>
- Date: Mon, 09 May 2016 10:25:16 +0800
> On 9 May 2016, at 10:11, Gerriet M. Denkmann <email@hidden> wrote:
>
> Thing *aThing = [ Thing new ];
>
> void *thingData = [ aThing data ]; // pointer to a buffer owned by aThing
>
> … never use aThing after this point → Arc might release aThing right now
> … but do lots of things with thingData
>
> … no more need for thingData
> [ aThing release];
>
> How to prevent Arc to release aThing before I have done with thingData?
>
> Gerriet.
>
well [ aThing release ] won’t work in ARC, I assume you really mean aThing = nil, or just letting aThing fall out of the bottom of the local scope
either mark [ Thing data ] with NS_RETURNS_INNER_POINTER which is equivalent to __attribute__((objc_returns_inner_pointer))
or mark aThing with __attribute__((objc_precise_lifetime))
_______________________________________________
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