NSCoder

person.h头文件内容

  1. #import <Foundation/Foundation.h>
  2. @interface Person : NSObject
  3. {
  4.     NSString *name;
  5.     char sex;
  6.     int age;
  7. }
  8. @property(nonatomic,copy) NSString *name;
  9. @property char sex;
  10. @property int age;
  11. @end

 

 person.m实现文件

  1. #import "Person.h"

 

  1. @implementation Person
  2. @synthesize name,age,gender;
  3. -(void)encodeWithCoder:(NSCoder *)aCoder
  4. {
  5.     
  6.     [aCoder encodeObject:name forKey:@"stuName"];
  7.     NSNumber *age1 = [NSNumber numberWithInt:age];
  8.     [aCoder encodeObject:age1 forKey:@"stuAge"];
  9.     NSNumber *gender1 = [NSNumber numberWithChar:gender];
  10.     [aCoder encodeObject:gender1 forKey:@"stuGender"];
  11. }
  12. -(id)initWithCoder:(NSCoder *)dCoder
  13. {
  14.     name = [dCoder decodeObjectForKey:@"stuName"];
  15.     age = [[dCoder decodeObjectForKey:@"stuAge"]intValue];
  16.     gender = [[dCoder decodeObjectForKey:@"stuGender"]charValue];
  17.     return self;
  18. }
  19. @end

 

 main.m测试文件

  1. #import <Foundation/Foundation.h>
  2. #import "Person.h"
  3. int main(int argc, const char * argv[]) {
  4.     @autoreleasepool {
  5.         Person *p1 = [[Person alloc]init];
  6.         p1.name = @"zhangsan";
  7.         p1.age = 22;
  8.         p1.gender = 'F';
  9.         Person *p2 = [Person new];
  10.         p2.name = @"lisi";
  11.         p2.age = 23;
  12.         p2.gender = 'M';
  13.         
  14.         NSMutableDictionary *dic = [NSMutableDictionary dictionaryWithCapacity:30];
  15.         
  16.         [dic setObject:p1 forKey:@"person1"];
  17.         [dic setObject:p2 forKey:@"person2"];
  18.         //把字典内容存入到文件中
  19.         if ([NSKeyedArchiver archiveRootObject:dic toFile:@"/Users/mac/Desktop/a.plist"] ) {
  20.             NSLog(@"chenggong");
  21.         }
  22.         
  23.         NSMutableDictionary *dic2 = [NSMutableDictionary dictionaryWithCapacity:30];
  24.         //从文件中读取内容放入到字典中
  25.         dic2 = [NSKeyedUnarchiver unarchiveObjectWithFile:@"/Users/mac/Desktop/a.plist"];
  26.         NSEnumerator *enumerator = [dic2 objectEnumerator];
  27.         id obj;
  28.         //遍历字典内容
  29.         while (obj = [enumerator nextObject]) {
  30.             NSLog(@"name = %@,age = %i,gender = %c",[obj name],[obj age],[obj gender]);
  31.         }
  32.     }
  33.     return 0;
  34. }

 

全部评论

相关推荐

Twilight_m...:表格简历有点难绷。说说个人看法: 1.个人基本情况里好多无意义信息,什么婚姻状况、健康状况、兴趣爱好、户口所在地、身份证号码、邮政编码,不知道的以为你填什么申请表呢。 2.校内实践个人认为对找工作几乎没帮助,建议换成和测开有关的项目,实在没得写留着也行。 3.工作经历完全看不出来是干什么的,起码看着和计算机没啥关系,建议加强描述,写点你在工作期间的实际产出、解决了什么问题。 4.个人简述大而空,看着像AI生成,感觉问题最大。“Python,C,C++成为我打造高效稳定服务的得力工具”、“我渴望凭借自身技术知识与创新能力,推动人工智能技术的应用发展,助力社会实现智能化转型”有种小学作文的美感。而且你确定你个人简述里写的你都会嘛?你AI这块写的什么“深入研究”,发几篇顶会的硕博生都不一定敢这么写。而且你AI这块的能力和软测也完全无关啊。个人简述建议写你对哪些技术栈、哪些语言、哪些生产工具的掌握,写的有条理些,而且最好是和测开强相关的。
点赞 评论 收藏
分享
门口唉提是地铁杀:之前b站被一个游戏demo深深的吸引了。看up主页发现是个初创公司,而且还在招人,也是一天60。二面的时候要我做一个登录验证和传输文件两个微服务,做完要我推到github仓库,还要我加上jaeger和一堆运维工具做性能测试并且面试的时候投屏演示。我傻乎乎的做完以后人家跟我说一句现在暂时不招人,1分钱没拿到全是白干
你的秋招第一场笔试是哪家
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务