I think the easiest way to encode/decode NSRects for storage is NSStringFromRect() and NSRectFromString(). Then you can just implement a custom accessor for the property that converts in the direction you need.

->Ben
--
Ben Lachman
Acacia Tree Software

http://acaciatreesoftware.com

[EMAIL PROTECTED]
740.590.0009



On Apr 2, 2008, at 7:28 AM, Daniel Thorpe wrote:
Hello everyone,

I'm trying to get to grips with non-standard persistent attributes in Core Data. I've read through the docs I can find (http:// developer.apple.com/documentation/Cocoa/Conceptual/CoreData/ Articles/cdNSAttributes.html) but I'm still having some issues storing an NSRect in an entity. I've set the type to be transformable, and left the value transformer field empty using the model editor.

To actually set and get the NSRect values, I've been using NSValue's valueWithRect: and rectValue methods. However, when CD trys to saving the entities to the store, I get this error:

*** -[NSKeyedArchiver encodeValueOfObjCType:at:]: this archiver cannot encode structs

I've also changed the property defined in the header file for the entity to:
@property(retain) NSValue *extent;

from
@property(retain) id extent;

What am I doing wrong here? The docs seem to suggest for KVO/KVC compliant structs, NSRect, NSPoint, NSSize and NSRange, you don't need to overwrite the getters and setters?

Any help is much appreciated!

Cheers
Dan


_______________________________________________

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/blachman%40mac.com

This email sent to [EMAIL PROTECTED]

_______________________________________________

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 [EMAIL PROTECTED]

Reply via email to