Re: Archiving objects without their owner[1]
Re: Archiving objects without their owner[1]
- Subject: Re: Archiving objects without their owner[1]
- From: Andre Lipinski <email@hidden>
- Date: Wed, 19 Dec 2001 23:14:59 -0500
On Wednesday, December 19, 2001, at 01:59 AM, Dan Bernstein wrote:
On Wednesday, December 19, 2001, at 06:30 AM, Andre Lipinski wrote:
If you'd like to just handle one owner per archive, it's real easy, use
replaceObject:[NSNull null] withObject: then decode the root object.
With multiple replaced things it's more tricky if you'd like some tips,
please email.
Andre.
Thanks.
However, it doesn't seem to work for me. Here's what I did for archiving:
NSArchiver *myArchiver = [[[NSArchiver alloc]
initForWritingWithMutableData:[NSMutableData data]] autorelease];
[myArchiver replaceObject:self withObject:[NSNull null]];
[myArchiver encodeRootObject:theRootObject];
I then store [myArchiver archiverData]. Here's how I unarchive:
NSUnarchiver *myUnarchiver = [[[NSUnarchiver alloc]
initForReadingWithData:theData] autorelease];
[myUnarchiver replaceObject:[NSNull null] withObject:self];
theRootObject = [myUnarchiver decodeObject];
Yet the unarchived object contains pointers to <null> instead of to the
object doing the unarchiving.
What's wrong?
Hmmmmm. The pointers are NULL or nil, not [NSNull null]? Alright, try
something more complicated which will also work for multiple replacements.
Create something like a dictionary with object pairs of strings & strings
replace each object with one of these string objects archive the
dictionary first.
When unarchiving take the dictionary and perform object replacements on
the string objects in the dictionary.
Andre.