mirror of
https://github.com/gnustep/libs-base.git
synced 2025-05-31 08:41:03 +00:00
Simplified archiving
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@11613 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
c629eee3c8
commit
6bb527278f
5 changed files with 121 additions and 73 deletions
|
@ -8,7 +8,8 @@
|
|||
#include <Foundation/NSString.h>
|
||||
#include <Foundation/NSGeometry.h>
|
||||
#include <Foundation/NSArray.h>
|
||||
#include <Foundation/NSAutoreleasePool.h>
|
||||
#include <Foundation/NSArchiver.h>
|
||||
#include <Foundation/NSAutoreleasePool.h>
|
||||
|
||||
|
||||
int main()
|
||||
|
@ -18,7 +19,7 @@ int main()
|
|||
NSRect rect;
|
||||
NSValue *v1, *v2;
|
||||
NSNumber *nc, *ns, *n1, *n2, *n3, *n4, *n5, *n6, *n7;
|
||||
NSArray *a1, *a2;
|
||||
NSMutableArray *a1, *a2;
|
||||
NSAutoreleasePool *arp = [NSAutoreleasePool new];
|
||||
|
||||
// Numbers
|
||||
|
@ -58,8 +59,8 @@ printf("nc compare: ns is %d\n", [nc compare: ns]);
|
|||
printf("n1 isEqual: n3 is %d\n", [n1 isEqual: n3]);
|
||||
printf("n4 isEqual: n5 is %d\n", [n4 isEqual: n5]);
|
||||
|
||||
a1 = [NSArray arrayWithObjects:
|
||||
[NSNumber numberWithChar: 111],
|
||||
a1 = [NSMutableArray arrayWithObjects:
|
||||
[NSNumber numberWithChar: 111],
|
||||
[NSNumber numberWithUnsignedChar: 112],
|
||||
[NSNumber numberWithShort: 121],
|
||||
[NSNumber numberWithUnsignedShort: 122],
|
||||
|
@ -70,7 +71,7 @@ printf("nc compare: ns is %d\n", [nc compare: ns]);
|
|||
[NSNumber numberWithFloat: 151],
|
||||
[NSNumber numberWithDouble: 152], nil];
|
||||
|
||||
a2 = [NSArray arrayWithObjects:
|
||||
a2 = [NSMutableArray arrayWithObjects:
|
||||
[NSNumber numberWithChar: 111],
|
||||
[NSNumber numberWithUnsignedChar: 112],
|
||||
[NSNumber numberWithShort: 121],
|
||||
|
@ -85,26 +86,95 @@ printf("nc compare: ns is %d\n", [nc compare: ns]);
|
|||
printf("a1 isEqual: a2 is %d\n", [a1 isEqual: a2]);
|
||||
|
||||
// Test values, Geometry
|
||||
{
|
||||
unsigned char v = 99;
|
||||
v1 = [NSValue value: &v withObjCType: @encode(unsigned char)];
|
||||
[a1 addObject: v1];
|
||||
}
|
||||
{
|
||||
signed char v = 99;
|
||||
v1 = [NSValue value: &v withObjCType: @encode(signed char)];
|
||||
[a1 addObject: v1];
|
||||
}
|
||||
{
|
||||
unsigned short v = 99;
|
||||
v1 = [NSValue value: &v withObjCType: @encode(unsigned short)];
|
||||
[a1 addObject: v1];
|
||||
}
|
||||
{
|
||||
signed short v = 99;
|
||||
v1 = [NSValue value: &v withObjCType: @encode(signed short)];
|
||||
[a1 addObject: v1];
|
||||
}
|
||||
{
|
||||
unsigned int v = 99;
|
||||
v1 = [NSValue value: &v withObjCType: @encode(unsigned int)];
|
||||
[a1 addObject: v1];
|
||||
}
|
||||
{
|
||||
signed int v = 99;
|
||||
v1 = [NSValue value: &v withObjCType: @encode(signed int)];
|
||||
[a1 addObject: v1];
|
||||
}
|
||||
{
|
||||
unsigned long v = 99;
|
||||
v1 = [NSValue value: &v withObjCType: @encode(unsigned long)];
|
||||
[a1 addObject: v1];
|
||||
}
|
||||
{
|
||||
signed long v = 99;
|
||||
v1 = [NSValue value: &v withObjCType: @encode(signed long)];
|
||||
[a1 addObject: v1];
|
||||
}
|
||||
{
|
||||
float v = 99;
|
||||
v1 = [NSValue value: &v withObjCType: @encode(float)];
|
||||
[a1 addObject: v1];
|
||||
}
|
||||
{
|
||||
double v = 99;
|
||||
v1 = [NSValue value: &v withObjCType: @encode(double)];
|
||||
[a1 addObject: v1];
|
||||
}
|
||||
v1 = [NSValue valueWithPoint: NSMakePoint(1, 1)];
|
||||
[a1 addObject: v1];
|
||||
v1 = [NSValue valueWithRange: NSMakeRange(1, 1)];
|
||||
[a1 addObject: v1];
|
||||
rect = NSMakeRect(1.0, 103.3, 40.0, 843.);
|
||||
rect = NSIntersectionRect(rect, NSMakeRect(20, 78., 89., 30));
|
||||
v1 = [NSValue valueWithRect: rect];
|
||||
[a1 addObject: v1];
|
||||
printf("Encoding for rect is %s\n", [v1 objCType]);
|
||||
rect = [v1 rectValue];
|
||||
printf("Rect is %f %f %f %f\n", NSMinX(rect), NSMinY(rect), NSMaxX(rect),
|
||||
NSMaxY(rect));
|
||||
v2 = [NSValue valueWithPoint: NSMakePoint(3,4)];
|
||||
[a1 addObject: v1];
|
||||
v1 = [NSValue valueWithNonretainedObject: v2];
|
||||
[[v1 nonretainedObjectValue] getValue: &p];
|
||||
printf("point is %f %f\n", p.x, p.y);
|
||||
range = NSMakeRange(1, 103);
|
||||
range = NSIntersectionRange(range, NSMakeRange(2, 73));
|
||||
v1 = [NSValue valueWithRange: range];
|
||||
[a1 addObject: v1];
|
||||
printf("Encoding for range is %s\n", [v1 objCType]);
|
||||
range = [v1 rangeValue];
|
||||
printf("Range is %u %u\n", range.location, range.length);
|
||||
|
||||
printf("Try getting a null NSValue, should get a NSLog error message: \n");
|
||||
v2 = [NSValue value: NULL withObjCType: @encode(int)];
|
||||
[a1 addObject: v1];
|
||||
|
||||
a2 = [NSUnarchiver unarchiveObjectWithData:
|
||||
[NSArchiver archivedDataWithRootObject: a1]];
|
||||
|
||||
printf("After archiving, a1 isEqual: a2 is %d\n", [a1 isEqual: a2]);
|
||||
if ([a1 isEqual: a2] == NO)
|
||||
{
|
||||
printf("a1 - %s\n", [[a1 description] cString]);
|
||||
printf("a2 - %s\n", [[a2 description] cString]);
|
||||
}
|
||||
|
||||
[arp release];
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue