Re: confused by what seems to be a recursive declaration/definition
Re: confused by what seems to be a recursive declaration/definition
- Subject: Re: confused by what seems to be a recursive declaration/definition
- From: Ken Thomases <email@hidden>
- Date: Thu, 11 Aug 2011 21:36:08 -0500
On Aug 11, 2011, at 9:27 PM, William Squires wrote:
> On Aug 11, 2011, at 6:51 PM, Kyle Sluder wrote:
>
>> On Thu, Aug 11, 2011 at 4:26 PM, Jens Alfke <email@hidden> wrote:
>>>
>>> On Aug 11, 2011, at 4:10 PM, Luther Baker wrote:
>>>
>>>> static void *AVPlayerDemoPlaybackViewControllerRateObservationContext = &
>>>> AVPlayerDemoPlaybackViewControllerRateObservationContext;
>>>
>>> It’s initializing the variable to point to itself. Which seems sort of pointless, but I don’t know the context.
>>
>> It's a quick way to initialize a unique pointer when you don't care
>> about the value.
>>
>
> Of course, if you don't care about the value, why would you need a unique one? :)
Read up about KVO. Due to what is arguably a design bug, the context parameter can't really be used to carry arbitrary, client-defined data. It has to be used to distinguish between a class's own observation registrations and those of any of its super- or sub-classes. For that, one needs a globally unique value. The convention is to use this technique to create a pointer that will be unique for anybody else using this same technique (or using a valid pointer from any other source).
Regards,
Ken
_______________________________________________
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