首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

objc对象存档 序列化

2013-04-09 
objc对象归档 序列化------------------------------------------------测试代码------------------------

objc对象归档 序列化

------------------------------------------------测试代码------------------------------------------------ NSString *str = @"hello"; [str writeToFile:@"/Users/lili/Desktop/str.txt" atomically:YES encoding:NSUTF8StringEncoding error:nil]; NSArray *arr = [[NSArray alloc]initWithObjects:@"lili",@"tata", nil]; [arr writeToFile:@"/Users/lili/Desktop/arr.txt" atomically:YES]; NSDictionary *dict = [NSDictionary dictionaryWithObjects:@[@"lili",@"男"] forKeys:@[@"name",@"sex"]]; [dict writeToFile:@"/Users/lili/Desktop/dict.txt" atomically:YES]; Person *parent = [[Person alloc]init]; parent.age = 40; parent.name = @"lili"; Person *child = [[Person alloc]init]; child.age = 22; child.name = @"linian"; parent.child = child; NSData *data = [NSKeyedArchiver archivedDataWithRootObject:parent]; [data writeToFile:@"/Users/lili/Desktop/data.txt" atomically:YES]; Person *people = [NSKeyedUnarchiver unarchiveObjectWithFile:@"/Users/lili/Desktop/data.txt"]; NSLog(@"%@",people); NSDictionary *dictPerson = [NSDictionary dictionaryWithObjects:@[[NSKeyedArchiver archivedDataWithRootObject:parent],[NSKeyedArchiver archivedDataWithRootObject:child]] forKeys:@[@"parent",@"child"]]; [dictPerson writeToFile:@"/Users/lili/Desktop/dictPerson.txt" atomically:YES]; NSDictionary *pdict = [NSDictionary dictionaryWithContentsOfFile:@"/Users/lili/Desktop/dictPerson.txt"]; Person *tPerson = [NSKeyedUnarchiver unarchiveObjectWithData:[pdict objectForKey:@"parent"]]; NSLog(@"%@",tPerson); NSArray *arrPerson = [[NSArray alloc]initWithObjects:[NSKeyedArchiver archivedDataWithRootObject:parent],[NSKeyedArchiver archivedDataWithRootObject:parent], nil]; [arrPerson writeToFile:@"/Users/lili/Desktop/arrPerson.txt" atomically:YES]; NSArray *pArr = [NSArray arrayWithContentsOfFile:@"/Users/lili/Desktop/arrPerson.txt"]; Person *aPerson = [NSKeyedUnarchiver unarchiveObjectWithData:[pArr objectAtIndex:0]]; NSLog(@"%@",aPerson); ------------------------------------------------Person类------------------------------------------------ #import <Foundation/Foundation.h> @interface Person : NSObject<NSCoding> @property(strong,nonatomic)Person *child; @property(assign,nonatomic)int age; @property(copy,nonatomic)NSString *name; @end #import "Person.h" @implementation Person -(NSString *)description { return [NSString stringWithFormat:@"{age:%d,name:%@,child:%@}",self.age,self.name,self.child]; } -(void)encodeWithCoder:(NSCoder *)aCoder { [aCoder encodeInt:self.age forKey:@"age"]; [aCoder encodeObject:self.name forKey:@"name"]; [aCoder encodeObject:self.child forKey:@"child"]; } -(id)initWithCoder:(NSCoder *)aDecoder { if(self = [super init]){ self.age = [aDecoder decodeIntForKey:@"age"]; self.name = [aDecoder decodeObjectForKey:@"name"]; self.child = [aDecoder decodeObjectForKey:@"child"]; } return self; } @end

热点排行