Hello everyone!

I'm trying to archive an object using NSKeyedArchiver. The object is question has quite a complex structure, and one of it's instance variables is an NSMutableData. I've tried using

[coder encodeObject:result forKey:@"TchebichefMoment_momentData"];

which doesn't seem to do anything at all, so I tried:

- (void)encodeWithCoder:(NSCoder *)coder {
        [super encodeWithCoder:coder];
        [coder encodeInteger:order forKey:@"TchebichefMoment_momentOrder"];
        [coder encodeObject:input forKey:@"TchebichefMoment_input"];  
        [coder encodePoint:centre forKey:@"TchebichefMoment_centre"];

        const double *dataPtr = (const double *)[result bytes];
[coder encodeBytes:dataPtr length:(NSUInteger)(N*N*sizeof(double)) forKey:@"TchebichefMoment_momentData"];
        return;
}

The result ivar is an NSMutableData object containing N^2 doubles. This compiles, and does archive something, however, when it get's decoded, the object is not the same.....

My decoding method is:

- (id)initWithCoder:(NSCoder *)coder {
        if(self = [super initWithCoder:coder]) {
self.order = [coder decodeIntegerForKey:@"TchebichefMoment_momentOrder"]; input = [[coder decodeObjectForKey:@"TchebichefMoment_input"] retain];
                self.width = [input pixelsWide];
                self.height = [input pixelsHigh];                               
                self.N = (width <= height) ? width : height; 
                self.half = (NSInteger)(N/2.0);
                self.centre = [coder 
decodePointForKey:@"TchebichefMoment_centre"];   

// self.result = [[coder decodeObjectForKey:@"TchebichefMoment_momentData"] retain];
                                
                NSUInteger len;
const double *dataPtr = (const double *)[coder decodeBytesForKey:@"TchebichefMoment_momentData" returnedLength:&len];
                self.result = [[NSData alloc] initWithBytes:dataPtr length:len];
                
                [self initTchebichefPolynomial];
        }
        return self;
}

Any thoughts on how to do this properly, of if someone can confirm that this is correct, and there definitely isn't a bug in NSKeyedArchiver would be really appreciated!

Cheers
Dan



_______________________________________________

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]

Reply via email to