归档读写数据

来源:互联网 发布:网络知识都有什么 编辑:程序博客网 时间:2024/06/02 15:44
p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo}p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #3e207e}p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; min-height: 13.0px}p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #0b831b}p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #703fa6}p.p6 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #cc2d24}p.p7 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px 'Heiti SC Light'; color: #0b831b}p.p8 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #34595d}p.p9 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #b72e9f}span.s1 {color: #703fa6}span.s2 {color: #000000}span.s3 {color: #b72e9f}span.s4 {color: #2f30d3}span.s5 {color: #528186}span.s6 {color: #3e207e}span.s7 {color: #cc2d24}span.s8 {color: #34595d}span.s9 {font: 11.0px Menlo}

先新建一个person类:

p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo}p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #b72e9f}span.s1 {color: #b72e9f}span.s2 {color: #703fa6}span.s3 {color: #000000}

@interface person : NSObject

{

    NSString *name;

    NSString *profession;

}

@property (nonatomic,copy)NSString *name;

@property (nonatomic,copy)NSString *profession;

@end


//implementation

p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #cc2d24}p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; min-height: 13.0px}p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #b72e9f}p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo}p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #0b831b}p.p6 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #76482e}p.p7 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #528186}span.s1 {color: #76482e}span.s2 {color: #000000}span.s3 {color: #b72e9f}span.s4 {color: #3e207e}span.s5 {color: #703fa6}span.s6 {color: #528186}span.s7 {color: #cc2d24}

#import "person.h"

@implementation person

@synthesize profession,name;

- (id)init

{

    self = [super init];

    if (self) {

        // Initialization code here.

    }

    return self;

}

- (void)encodeWithCoder:(NSCoder *)aCoder{

    [aCoder encodeObject:name forKey: @"kname"];

    [aCoder encodeObject:profession forKey: @"kProfession"];

    // [aCoder encodeObject:Age forKey: kAge];

    // [aCoder encodeObject:marry forKey:kMarry];

}

- (id)initWithCoder:(NSCoder *)aDecoder{

    if(self = [super init]){

        self.name = [aDecoder decodeObjectForKey:@"kname"];

        self.profession = [aDecoder decodeObjectForKey:@"kProfession"];

        //Age = [aDecoder decodeObjectForKey:kAge];

        // marry=[aDecoder decodeObjectForKey:kMarry];

    }

    return self;

}

#pragma mark ---------------NSCopying 1 method-------------

- (id)copyWithZone:(NSZone *)zone{

    person *tmp = [[[self class] allocWithZone:zone] init];

    tmp.name = [self.name copy];

    tmp.profession = [self.profession copy];

    return nil;

}


- (void)dealloc

{

    [name release];

    [profession release];

    [super dealloc];

}

@end


//------------------------下面是调用方法


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

{

    // Override point for customization after application launch.

    self.window = [[UIWindow allocinitWithFrame:[[UIScreen mainScreenbounds]];

    [self processObjectWrite];

    [self processObjectRead];

    [self.window makeKeyAndVisible];

    return YES;

}



-(NSString*)pathFileForProcess:(NSString *)pathName{

    NSArray *directory=NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES);

    return [[directory objectAtIndex:0] stringByAppendingPathComponent:pathName];

}


-(void)processObjectWrite{

    person *pObject= [[person alloc] init];

    pObject.name = [[NSString alloc] initWithString:@"wenQiang"];

    pObject.profession = [[NSString alloc] initWithString:@"project manager"];

    //[pObject setAge:24 andMarry: NO];

    

    //NSMutableArray *testData = [[NSMutableArray alloc] init];

    NSMutableData *data=[[NSMutableData alloc] init];

    NSKeyedArchiver *archiver=[[NSKeyedArchiver alloc] initForWritingWithMutableData:data];

    [archiver encodeObject:pObject forKey:@"kObject"];

    [archiver finishEncoding];

    Boolean bWrite = [data writeToFile:[self pathFileForProcess:@"object2"] atomically:YES];

    if(bWrite) NSLog(@"ok..."); else NSLog(@"write error!");

//    [archiver release];

    //[pObject release];

}

//归档读

-(void)processObjectRead{

    NSMutableData *data = [[NSMutableData alloc] initWithContentsOfFile:[self pathFileForProcess:@"object2"]];

    NSLog(@"data %@..", data);

    NSKeyedUnarchiver *unchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data];

    person *tmp = [unchiver decodeObjectForKey:@"kObject"];

    [unchiver finishDecoding];

    NSLog(@"OBJECT: name: %@ profession: %@", tmp.name, tmp.profession);

  //  [unchiver release];

    //[tmp release];

}