• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Problem when archiving data: [_NSViewGState encodeWithCoder:] unrecognized selector
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Problem when archiving data: [_NSViewGState encodeWithCoder:] unrecognized selector


  • Subject: Re: Problem when archiving data: [_NSViewGState encodeWithCoder:] unrecognized selector
  • From: JArod Wen <email@hidden>
  • Date: Sat, 26 Jul 2008 01:16:17 -0400

Hi Ken and Kyle,

I am really sorry for this silly mistake in coding... It seems that the problem comes just from the decode line in encode method... Sorry for both of your valuable time!

And for the NSNumber, in fact I used encodeObject: but it thrown a EXC_BAD_ACCESS to me, then I changed to encodeValueOfObjCType. It should work for both of these methods in my opinion, so I think it may have some tricks related to my implementation.

Again, thanks for your kindness on my silly mistake!

On Jul 26, 2008, at 12:52 AM, Ken Ferry wrote:

On Fri, Jul 25, 2008 at 9:33 PM, Ken Ferry <email@hidden> 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@hidden> wrote:
On Fri, Jul 25, 2008 at 6:29 PM, JArod Wen <email@hidden> 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@hidden)

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:
@gmail.com


This email sent to email@hidden



--------------- JArod Wen




_______________________________________________

Cocoa-dev mailing list (email@hidden)

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:
This email sent to email@hidden


References: 
 >Problem when archiving data: [_NSViewGState encodeWithCoder:] unrecognized selector (From: JArod Wen <email@hidden>)
 >Re: Problem when archiving data: [_NSViewGState encodeWithCoder:] unrecognized selector (From: "Kyle Sluder" <email@hidden>)
 >Re: Problem when archiving data: [_NSViewGState encodeWithCoder:] unrecognized selector (From: "Ken Ferry" <email@hidden>)
 >Re: Problem when archiving data: [_NSViewGState encodeWithCoder:] unrecognized selector (From: "Ken Ferry" <email@hidden>)

  • Prev by Date: Re: Getting the Alert volume
  • Next by Date: NSSpeechSynthesizer delegate method not called in OCUint
  • Previous by thread: Re: Problem when archiving data: [_NSViewGState encodeWithCoder:] unrecognized selector
  • Next by thread: (Newb question?) Launching app on dock icon file drop?
  • Index(es):
    • Date
    • Thread