• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: How to keep things alive in Arc?
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: How to keep things alive in Arc?


  • Subject: Re: How to keep things alive in Arc?
  • From: "Gerriet M. Denkmann" <email@hidden>
  • Date: Mon, 09 May 2016 12:12:29 +0700

> On 9 May 2016, at 09:25, Roland King <email@hidden> wrote:
>
>
>> 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
I meant: this was the code before I converted to Arc.

> either mark [ Thing data ] with NS_RETURNS_INNER_POINTER which is equivalent to __attribute__((objc_returns_inner_pointer))

I did this, and now the app behaves again as it did before converting to Arc. No more data mutating behind my back and other strange effects.
Thanks a lot!

The only mention of this, which Xcode could find for me, was: Foundation Release Notes for OS X v10.8 and Earlier.
Is there any other documentation (e.g. with a list of all __attribute__s and their respective meaning)?


> or mark aThing with __attribute__((objc_precise_lifetime))
I think that NS_RETURNS_INNER_POINTER is more self explaining.


Kind regards,

Gerriet.


_______________________________________________

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


  • Follow-Ups:
    • Re: How to keep things alive in Arc?
      • From: Quincey Morris <email@hidden>
References: 
 >How to keep things alive in Arc? (From: "Gerriet M. Denkmann" <email@hidden>)
 >Re: How to keep things alive in Arc? (From: Roland King <email@hidden>)

  • Prev by Date: Re: NSTableView is messaging zombie delegate
  • Next by Date: Re: How to keep things alive in Arc?
  • Previous by thread: Re: How to keep things alive in Arc?
  • Next by thread: Re: How to keep things alive in Arc?
  • Index(es):
    • Date
    • Thread