On Fri, Jul 25, 2008 at 9:33 PM, Ken Ferry <[EMAIL PROTECTED]> wrote: >> [coder encodeValueOfObjCType:@encode(NSNumber *) at:&magnitude]; > > This isn't encoding the number object, this is encoding the pointer to > the number object. When you get it out of the archive, you get the > same pointer as you put in, but that pointer points to some random bit > of memory in your app, not the number.
I'm sorry, this is wrong. Guess I shouldn't have replied so quickly on reading this. :-) The object part ought to work. You do have a line where you try to decode in encodeWithCoder where you want to encode, and is the points property a C-array of points? That is going to behave as I suggested. You're just encoding a pointer, not the points themselves. What Kyle said also applies. -Ken > > Use [coder encodeObject:] to encode objects. > > Also, you're probably also better off using NSKeyedArchiver than > NSArchiver, and using encodePoint:forKey:, encodeObject:forKey:, etc. > The non-keyed archiver is not formally deprecated, but it shouldn't > really be used in new code. Newer Cocoa classes cannot generally be > encoded with the non-keyed archiver, and older classes do not > necessarily encode all of their data when written to a non-keyed > archive. Every time you encode something new in an encodeWithCoder: > method to a non-keyed archiver, it breaks the ability of older > versions of the class to read the archiver. > > -Ken > > On Fri, Jul 25, 2008 at 6:59 PM, Kyle Sluder > <[EMAIL PROTECTED]> wrote: >> On Fri, Jul 25, 2008 at 6:29 PM, JArod Wen <[EMAIL PROTECTED]> wrote: >>> Since I didn't find any object in the data to be written has the type of >>> NSViewGState, I am really confused about this error. Anyone can give me any >>> suggestions? >> >> This is usually a case of failing to retain an object you own. If it >> gets deallocated underneath your feet, an object of a different class >> may wind up in the same place in memory, but your old pointers don't >> know that. Often, because of the way the compiler has generated your >> code, it's consistently an object of a certain but completely >> unrelated class. >> >> --Kyle Sluder >> _______________________________________________ >> >> Cocoa-dev mailing list ([email protected]) >> >> 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/kenferry%40gmail.com >> >> This email sent to [EMAIL PROTECTED] >> > _______________________________________________ Cocoa-dev mailing list ([email protected]) 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]
