Re: CGPoint and KVO

2010-04-03 Thread Clark S. Cox III
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  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 (Cocoa-dev@lists.apple.com)
>>> 
>>> 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:
>>> http://lists.apple.com/mailman/options/cocoa-dev/kiel.gillard%40gmail.com
>>> 
>>> This email sent to kiel.gill...@gmail.com
>> 
> 
> ___
> 
> Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)
> 
> 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:
> http://lists.apple.com/mailman/options/cocoa-dev/clarkcox3%40gmail.com
> 
> This email sent to clarkc...@gmail.com
___

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

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:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com


Re: CGPoint and KVO

2010-04-03 Thread Roland King
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 (Cocoa-dev@lists.apple.com)
>> 
>> 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:
>> http://lists.apple.com/mailman/options/cocoa-dev/kiel.gillard%40gmail.com
>> 
>> This email sent to kiel.gill...@gmail.com
> 

___

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

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:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com


Re: CGPoint and KVO

2010-04-03 Thread Kiel Gillard
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 (Cocoa-dev@lists.apple.com)
> 
> 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:
> http://lists.apple.com/mailman/options/cocoa-dev/kiel.gillard%40gmail.com
> 
> This email sent to kiel.gill...@gmail.com

___

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

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:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com


CGPoint and KVO

2010-04-03 Thread Roland King
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.

This is iPhone OS (incase that makes a difference). 
___

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

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:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com