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. }

 

全部评论

相关推荐

不愿透露姓名的神秘牛友
昨天 14:10
啊啊啊啊好幸福,妈妈是我找工作发疯前的一束光
榕城小榕树:你是我见过最幸福的牛客男孩
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
昨天 14:00
林子大了什么鸟都有啊,我觉得我说的已经很客气了,阴阳谁呢
牛客62656195...:应该不是阴阳吧?你第一次注册的时候boss就说你是牛人
点赞 评论 收藏
分享
那一天的Java_J...:他本来公司就是做这个的,不就是正常的游戏客户端和服务器开发,软硬件联动,有啥恶心不恶心的,提前告诉你就是怕你接受不了,接受不了就没必要再往后走流程浪费时间,虽然这公司是一坨。
点赞 评论 收藏
分享
见见123:简历没有啥问题,是这个社会有问题。因为你刚毕业,没有工作经历,现在企业都不要没有工作经历的。社会病了。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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