Re: A String of Problems
Re: A String of Problems
- Subject: Re: A String of Problems
- From: "Louis C. Sacha" <email@hidden>
- Date: Sun, 11 Jul 2004 02:28:32 -0700
Hello...
You probably need to override the classForCoder instance method and
possible some of the related methods, since NSString is a class
cluster and implements these methods in a way that causes strings to
be archived as instances of the public classes (if I remember
correctly).
http://developer.apple.com/documentation/Cocoa/Reference/Foundation/ObjC_classic/Classes/NSObject.html#//apple_ref/doc/uid/20000050/classForCoder
http://developer.apple.com/documentation/Cocoa/Conceptual/Archiving/Tasks/codingobjects.html#//apple_ref/doc/uid/20000948/BAJJBCHI
Hope that helps,
Louis
I have a subclass of NSString that does not work correctly with
archiving; the subclass is the embedded type--where the data is held by
a normal NSString instance variable--and my NSCoding implementation
looks like this:
- (void)encodeWithCoder:(NSCoder *)coder
{
[coder encodeObject: _string forKey: @"string"];
}
- (id)initWithCoder:(NSCoder *)coder
{
[self setString: [[coder decodeObjectForKey: @"string"] retain]];
return self;
}
Yet they don't seem to be called at all.
Also, my subclass is archived properly the first time. Then, when it is
unarchived, it is allocated as an NSCFString so that it is archived
again incorrectly and so that the program crashes when it is used as
the subclass.
Any help would be appreciated.
Herr Witten
_______________________________________________
cocoa-dev mailing list | email@hidden
Help/Unsubscribe/Archives:
http://www.lists.apple.com/mailman/listinfo/cocoa-dev
Do not post admin requests to the list. They will be ignored.