I'm trying to copy NSManagedObjects using -dictionaryWithValuesForKeys and 
-setValuesForKeysWithDictionary:. Some of my attributes are C++ objects (simple 
ones). For example:

class
Rect : public CGRect
{
};

@interface
MyObj : NSManagedObject

@property (nonatomic, assign)   Rect            bounds;

@end


When I get the dictionary of values from the source object, I get something 
reasonable:

(lldb) po values
(NSDictionary *) $0 = 0x0000000400770ae0 {
    bounds = "<00000000 000030c0 00000000 000038c0 00000000 00004040 00000000 
00004640>";
}

But when I try to set the values in the target object, my setBounds: method

- (void)
setBounds: (Graphics::Rect) inVal
{
    NSString* v = NSStringFromRect(NSRectFromCGRect(inVal));
    [self willChangeValueForKey:@"bounds"];
    self.shadowBounds = v;
    [self didChangeValueForKey:@"bounds"];
}

gets called with

inVal = (Rect &)        0x0000000000000000
> CGRect (CGRect)

Showing in the debugger. That is, the type of inVal is a Rect reference (Rect&).

Something's clearly not right. Can I even do this?

Thanks,
-- 
Rick




_______________________________________________

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

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

Reply via email to