Re: CGPoint and KVO
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
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
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
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