• 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: __block __weak - am I doing this right?
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: __block __weak - am I doing this right?


  • Subject: Re: __block __weak - am I doing this right?
  • From: Fritz Anderson <email@hidden>
  • Date: Sat, 18 Feb 2012 11:23:13 -0600

On 18 Feb 2012, at 7:41 AM, steven Hooley wrote:

>> The same issue came up again later the same day:
>>
>>   __block UIBackgroundTaskIdentifier bti = [[UIApplication sharedApplication]
>>                                   beginBackgroundTaskWithExpirationHandler: ^{
>>       [[UIApplication sharedApplication] endBackgroundTask:bti];
>>   }];
>>
>> Without __block, bti is invalid, and you won't find that out easily because it's unlikely that you'll actually expire. :) m.
>
> Can this be right?

If I understand why you're mystified, consider this, without the __block declaration.

- bti starts as junk.

- The block is instantiated, and captures the junk _value_ (because it's not a __block variable) of bti.

- The beginBackgroundTask… method creates the background task identifier.

- That identifier is then assigned to bti. bti is no longer junk, but that does the block no good, because it's already captured the junk value.


If bti is declared __block, the block captures (notionally) a _reference_ to bti. It doesn't evaluate bti until it executes, which will be after the assignment.

	— F


_______________________________________________

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: __block __weak - am I doing this right?
      • From: Greg Parker <email@hidden>
    • Re: __block __weak - am I doing this right?
      • From: steven Hooley <email@hidden>
References: 
 >Re: __block __weak - am I doing this right? (From: steven Hooley <email@hidden>)

  • Prev by Date: NSPopUpButton not accepting setMenu: from WindowController code
  • Next by Date: Re: NSPopUpButton not accepting setMenu: from WindowController code
  • Previous by thread: Re: __block __weak - am I doing this right?
  • Next by thread: Re: __block __weak - am I doing this right?
  • Index(es):
    • Date
    • Thread