数据的归档和解归档

数据的归档和解归档

//归档

BOOL success = [NSKeyedArchiver archiverRootObject:归档的对象 toFile:文件路径];

//解档

id content =  [NSKeyedUnArchiver unarchiveObjectWithFile:文件路径];

 

//第二种解归档(多对象)

//归档

NSString *homePath = NSHomePath();

NSString *filePath = [homePath stringByAppendingPathComponent:归档文件名];

NSMutableData *data = [NSMutableData data];

NSKeyedArchiver *archive = [[NSKeyedArchiver alloc]initForWritingMutableData:data];

[archive encodeInt:100 forKey:@“age”];

[archive encodeObject:对象名 forKey :@“name”];

[archive finishEncode];

[archive release];

BOOL success = [data writeToFile :filePath atomically:YES ];

//解档

NSString *homePath = NSHomePath();

NSString *filePath = [homePath stringByAppendingPathComponent:归档文件名];

NSData *data = [NSData dataWithContentsOfFile:filePath];

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

int num = [unarchive decodeIntForKey:@“age”];

id obj = [unarchive decodeObjectForKey:@“name”];

[unarchive release ];

//自定义归档的时候要遵守NSEcoding协议才行

//归档的时候 要实现方法

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

//解档的时候要实现

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

self = [super init];

if  (self  != nil){

 }

return self;

 }//注意点     对象属性的所有权

posted @ 2016-04-09 10:24  meixianLYD  阅读(143)  评论(0编辑  收藏  举报