diff --git a/Testing/nsarchiver.m b/Testing/nsarchiver.m index d6c22f061..04d15240a 100644 --- a/Testing/nsarchiver.m +++ b/Testing/nsarchiver.m @@ -10,9 +10,33 @@ #include #include +@interface ClassOne : NSObject +@end +@implementation ClassOne +- (void) encodeWithCoder: (NSCoder*)aCoder +{ +} +- (id) initWithCoder: (NSCoder*)aCoder +{ + return self; +} +@end +@interface ClassTwo : NSObject +@end +@implementation ClassTwo +- (void) encodeWithCoder: (NSCoder*)aCoder +{ +} +- (id) initWithCoder: (NSCoder*)aCoder +{ + return self; +} +@end + typedef struct { char a; double b; char c;} tstruct; int main() { + id obj; id set; id arp; id arc; @@ -98,6 +122,14 @@ printf("%u\n", [arc retainCount]); printf("%s\n", [[o description] cString]); } + obj = [ClassOne new]; + [NSArchiver archiveRootObject: obj toFile: @"./nsarchiver.dat"]; + RELEASE(obj); + [NSUnarchiver decodeClassName: @"ClassOne" asClassName: @"ClassTwo"]; + obj = [NSUnarchiver unarchiveObjectWithFile: @"./nsarchiver.dat"]; + if ([obj isKindOfClass: [ClassTwo class]] == NO) + NSLog(@"ERROR: ClassOne decoded as %@", NSStringFromClass([obj class])); + #if 0 /* * Benchmark use of very lightwight archiving - a single