Re: CGPoint and KVO
Re: CGPoint and KVO
- Subject: Re: CGPoint and KVO
- From: "Clark S. Cox III" <email@hidden>
- Date: Sat, 3 Apr 2010 08:37:48 -0700
The main issue with the original code is that it assumes that the value is a CGPoint. If it were anything smaller, you'd get garbage values in your point, and if it were any larger, you'd be stomping on memory as you ran off the end of your CGPoint variable.
Any time you use -[NSValue getValue:], you should check to make sure that the NSValue represents the correct type.
Sent from my iPad
On Apr 3, 2010, at 7:52, Roland King <email@hidden> wrote:
> Thanks
>
> pointValue didn't work on iPhone OS but CGPointValue did, luckily, as that's the one I needed. That seems to be a UIKit extension. I've switched to that.
>
> was my original method (apart from being clunky) wrong? It did work.
>
>
> On 03-Apr-2010, at 10:43 PM, Kiel Gillard wrote:
>
>> On 04/04/2010, at 1:40 AM, Roland King wrote:
>>
>>> I have a property which is a CGPoint and I'm observing it. I didn't really know what to expect in the change dictionary (I have NSKeyValueObservingOld as the observation flags) so I stuck in a breakpoint and went looking. After messing about in the debugger when the property was changed I found the old value was an NSConcreteValue and the following code appears to work to extract the CGPoint from it
>>>
>>> CGPoint oldPoint;
>>> id oldValue = [ change valueForKey:NSKeyValueChangeOld ];
>>> [ (NSValue*)oldValue getValue:&oldPoint ]
>>>
>>> Is this correct? I've failed to find anything much in the KVO documentation about CGPoint or how I should expect to receive structs or other primitives.
>>
>> In the case of NSPoint/CGPoint:
>>
>> CGPoint oldPoint = [oldValue pointValue];
>>
>>> This is iPhone OS (incase that makes a difference). _______________________________________________
>>>
>>> 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
>>
>
> _______________________________________________
>
> 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
_______________________________________________
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