个人对于归档的初级理解
来源:互联网 发布:瓦尔特磨床编程网 编辑:程序博客网 时间:2024/04/28 13:07
- (void)viewDidLoad { [super viewDidLoad]; NSString *str = @"abc"; [NSKeyedArchiver archiveRootObject:str toFile:@"/Users/apple/Desktop/test.plist"]; NSString *str1 = [NSKeyedUnarchiver unarchiveObjectWithFile:@"/Users/apple/Desktop/test.plist"]; NSLog(@"%@", str1); Student *stu = [[Student alloc] init]; stu.name = @"Zhangsan"; stu.age = 30; [NSKeyedArchiver archiveRootObject:stu toFile:@"/Users/apple/Desktop/student.plist"]; Student *stu1 = [NSKeyedUnarchiver unarchiveObjectWithFile:@"/Users/apple/Desktop/student.plist"]; NSLog(@"%p, %p", stu, stu1); NSLog(@"%@:%d, %@:%d", stu.name, stu.age, stu1.name, stu1.age); NSData *stuData = [NSKeyedArchiver archivedDataWithRootObject:stu]; [stuData writeToFile:@"/Users/apple/Desktop/stu.plist" atomically:YES]; NSData *stuData2 = [NSData dataWithContentsOfFile:@"/Users/apple/Desktop/stu.plist"]; Student *stu3 = [NSKeyedUnarchiver unarchiveObjectWithData:stuData2]; NSLog(@"%@:%d---%@:%d", stu.name, stu.age, stu3.name, stu3.age); NSUserDefaults *userDefault = [NSUserDefaults standardUserDefaults]; [userDefault setObject:stuData forKey:@"xxxx"]; NSData *stuData3 = [userDefault objectForKey:@"xxxx"]; Student *stu4 = [NSKeyedUnarchiver unarchiveObjectWithData:stuData3]; NSLog(@"%@:%d", stu4.name, stu4.age); stu4.dog = [[Dog alloc] init]; stu4.dog.name = @"小强"; [NSKeyedArchiver archiveRootObject:stu4 toFile:@"/Users/apple/Desktop/dog.plist"];}
要记住一点的就是,当对自定义的类使用归档的话,必须除了先协议委托<NScoding>这个协议之外,同时在.m中实现NScoding中的两个required方法
- (void)encodeWithCoder:(NSCoder *)aCoder{ [aCoder encodeObject:_name forKey:kNameKey]; [aCoder encodeInteger:_age forKey:kAgeKey]; [aCoder encodeObject:_dog forKey:kDogKey];}- (id)initWithCoder:(NSCoder *)aDecoder{ self = [super init]; if (self) { self.name = [aDecoder decodeObjectForKey:kNameKey]; self.age = [aDecoder decodeIntegerForKey:kAgeKey]; self.dog = [aDecoder decodeObjectForKey:kDogKey]; } return self;}
0 0
- 个人对于归档的初级理解
- 对于dequeueReusableCellWithIdentifier:的个人理解
- 对于dequeueReusableCellWithIdentifier:的个人理解
- 对于dequeueReusableCellWithIdentifier:的个人理解
- 个人对于SDN的理解
- 个人对于lower_bound的理解
- 对于bootstrap的个人理解
- 个人对于项目成功失败的理解
- 个人对于Directshow的理解 回复otisyf
- 个人对于JAVA异常的理解
- 对于递归的个人理解(1)
- 对于递归的个人理解(2)
- 对于this和$(this)的个人理解
- 个人对于OO的一些理解
- 个人对于java引用的理解
- 个人对于套接字的一些理解!
- Python中对于yield的个人理解
- [KMP]个人对于KMP算法的理解
- [置顶]ny-47-喷水装置(一)
- [置顶]ny-14-会场安排问题
- [置顶]ny-47-过河问题
- [置顶]ny-71-独木舟上的旅行
- [置顶]hdu-1248-寒冰王座
- 个人对于归档的初级理解
- cocos2d-x 3.0游戏实例学习笔记 《跑酷》第七步--物理碰撞检测(1)
- C语言的那些题(四)——最大公约数和最小公倍数
- Scala课堂
- Slick教程
- 母亲的一跪
- 突然蹲了下来,
- ios nsstring 字符串包含引号 处理方法
- hdu 4870 Rating(概率DP&高数消元)