博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
归档和解档
阅读量:5299 次
发布时间:2019-06-14

本文共 956 字,大约阅读时间需要 3 分钟。

归档--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);

 

转载于:https://www.cnblogs.com/pengpengzhang/p/4841869.html

你可能感兴趣的文章
Informix Online数据库日常管理及维护
查看>>
Java反射机制demo(二)—通过Class实例化任意类的对象
查看>>
String和StringBuffer的区别
查看>>
eclipse 添加resources 目录
查看>>
shell 备份mysql
查看>>
ios 常见问题解决
查看>>
Gradle初使用
查看>>
Error: rpmdb open failed
查看>>
CentOS 常用命令合集
查看>>
CRUD操作
查看>>
[转帖]盖国强:Oracle 路线图
查看>>
今天很奇妙
查看>>
My first blog
查看>>
基础的shell脚本
查看>>
[Spark]-集群与日志监控
查看>>
Asp.Net通过ODBC连接Oracle数据库
查看>>
(转)史上最全设计模式导学目录(完整版)
查看>>
有关OpenCV1.0中GUI命令的几个函数学习总结
查看>>
利用system-config-kickstart实现半自动化安装
查看>>
Oracle ORA-01033: ORACLE initialization or shutdown in progress 错误解决办法
查看>>