归档和解档

      针对于归档和解档,在日常工作当中用的不多,但是它的原理很重要,所以有必要我们重点学习一下(归档是:写入磁盘前将自定义对象转换成二级制数据,解档是:将磁盘上的二级制数据转换成自定义对象)。

     1.创建一个Person对象,写属性,遵守协议:

      在Person.h文件中

   #import <Foundation/Foundation.h>

   @interface Person : NSObject <NSCoding>            //此处要记得遵守NSCoding协议


   @property (nonatomic, copy)NSString *name;

   @property (nonatomic, assign)int age;


   @end

  
 
2.创建一个Person对象,写属性,遵守协议:

   在Person.m文件中

   #import "Person.h"                                 //此处是实现两个方法 encoder为编码器,decoder为解码器

   @implementation WTPerson

   -(void)encodeWithCoder:(NSCoder *)enCoder{


    [enCoder encodeObject:_name forKey:@"WTname"];

    [enCoder encodeInt:_age forKey:@"age"];

    

   }


   - (id)initWithCoder:(NSCoder *)Decoder{

    if (self = [super init]) {

        _name = [Decoder decodeObjectForKey:@"WTname"];

        _age = [Decoder decodeIntForKey:@"age"];

    }

    return self;

   }


   @end


       3.实现归档在解档      

   #import "ViewController.h"

   #import "Person.h"

   @interface ViewController ()

   @end

   @implementation ViewController


   - (void)viewDidLoad{

      [super viewDidLoad];

      WTPerson  *p =  [NSKeyedUnarchiver unarchiveObjectWithFile:@"/Users/路径/Desktop/abc.plist"]; 

      NSLog(@"%@",p);


   }


   -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{

    WTPerson *p = [[WTPerson alloc]init];

    p.age = 15;

    p.name = @"zhangsan";

    [NSKeyedArchiver archiveRootObject:p toFile:@"/Users/路径/Desktop/123.plist"];

  

   }






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值