On Dec 6, 2013, at 8:05 AM, [email protected] wrote:
>>> On 6 Dec 2013, at 11:26 am, Graham Cox <[email protected]> wrote:
>>>
>>> NSBlockOperation* op = [NSBlockOperation
>>> blockOperationWithBlock:^
>>> {
>>> CGContextClipToRect( ncx, tileRect );
>>>
>>> [self drawTile:tileRect inContext:ncx];
>>> }];
>>
>>
>> A question for blocks experts:
>>
>> Is the value of <tileRect> here captured when the block is created,or when
>> it is run?
>>
>> If the latter, it’s going to be probably wrong most of the time, so how can
>> I make sure it is captured when the block is created?
>>
>
>
> It's the latter IIRC
> You'll want to capture it outside and prefix it to be block scoped.
No it’s not and no you don’t.
int x = 3;
void (^block)(void) = ^{ NSLog(@"%d", x); };
x = 5;
block();
The result is 3 not 5.
--
Seth Willits
_______________________________________________
Cocoa-dev mailing list ([email protected])
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 [email protected]