zoukankan      html  css  js  c++  java
  • 归档和解档

    归档--encoder    它是将自定义的对象写入磁盘前将对象转成二进制然后存入磁盘。

      

    解档--decoder    它是将磁盘上保存的二进制数据转换成自定义对象。

    eg:

      自定义一个person对象

         .h 文件中

      @property (nonatomic,copy)NSString *name;

      @property (nonatomic,assign)int age;

      .m 文件中

      // 归档

      - (void)encodeWithCode:(NSCode *)encode

      {

        [encode encodeObject:_name forKey:@"userName"];

        [encode encodeInt:_age forKey:@"userAge"];

      }

      // 解档

      -(instancetype)initWithCoder:(NSCoder *)decoder

      {

        if(self = [super init])

        {

          _name = [decoder decodeObjectForKey:@"userName"];

          _age = [decoder decodeIntForKey:@"userAge"];

        }

        return self;

      }

      在控制器中调用  

      实例化一个person对象

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

      p.name = @"Jerry";

      p.age = 20;

      // 解档

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

      // 解档

      Person *p1 = [NSKeyedUnarchiver unarchiveObjectWithFile:@"/Users/apple/Desktop/123.plist"];

      NSLog(@"%@",p1.name);

  • 相关阅读:
    MYSQL 优化(二),持续更新收藏
    一些linux命令 备份下
    lsyncd +xinetd+syncd 多服务器文件同步
    阿里slb+ecs+https
    微擎 从 php5 到php7 的各种填坑 持续更新
    lmap
    微擎的ifp ife ifpp
    工具索引 mark名字
    Funny Bug || Sky Hole
    mysql 查询小技巧
  • 原文地址:https://www.cnblogs.com/pengpengzhang/p/4841869.html
Copyright © 2011-2022 走看看