IOS NSKeyedArchiver 归档

实体类

//
//  Blonder.m
//  MyUILibrary
//
//  Created by shi shengjie on 11-11-17.
//  Copyright 2011骞?bit. All rights reserved.
//

#import "Blonder.h"

#define NAME @"name"
#define AGE @"age"
#define CONTY @"country"
@implementation Blonder
@synthesize _name;
@synthesize _age;
@synthesize _country;

/*\\--NSCoding--//*/

-(void)encodeWithCoder:(NSCoder *)aCoder
{
    [aCoder encodeObject:_name forKey:NAME];
    [aCoder encodeObject:_country forKey:CONTY];
    [aCoder encodeInteger:_age forKey:AGE];
}
-(id)initWithCoder:(NSCoder *)aDecoder
{
    if (self=[super init]) {
        self._name=[aDecoder decodeObjectForKey:NAME];
        self._country=[aDecoder decodeObjectForKey:CONTY];
        self._age=[aDecoder decodeIntegerForKey:AGE];
    }
    return self;
}
/*\\--NSCopying--//*/
-(id)copyWithZone:(NSZone *)zone
{
    Blonder *copy=[[[self class] allocWithZone:zone] init];
    
    copy._name=[self._name copyWithZone:zone];
    copy._country=[self._country copyWithZone:zone];
    copy._age=[self copyWithZone:zone];
    return copy;
}
@end



归档

Blonder *blonder=[[Blonder alloc] init];
    blonder._age=12;
    blonder._name=@"maro";
    blonder._country=@"china";
    
    NSArray *array=[[NSArray alloc] initWithObjects:blonder, nil];
    
    NSString *temp=NSTemporaryDirectory();
    NSString *path=[temp stringByAppendingPathComponent:@"ht.x"];
    
    
    NSMutableData *data=[[[NSMutableData alloc] init] autorelease];
    NSKeyedArchiver *archiver=[[[NSKeyedArchiver alloc] initForWritingWithMutableData:data] autorelease];
    
    [archiver encodeObject:array forKey:@"key"];
    [archiver finishEncoding];
    [data writeToFile:path atomically:YES];
    
  
    NSData *rData=[[NSData alloc] initWithContentsOfFile:path];
    NSKeyedUnarchiver *unarchiver=[[NSKeyedUnarchiver alloc] 
	initForReadingWithData:rData];
    NSArray *rArray=[unarchiver decodeObjectForKey:@"key"];
    for (id i in rArray){
        Blonder *b=(Blonder *)i;
        NSLog(@"%@",b._name);
    }



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值