自定义对象要实现归档必须实现NSCoding协议

NSCoding协议有两个方法,encodeWithCoder方法对对象的属性数据做编码处理,initWithCoder解码归档数据来初始化对象。

#import <Foundation/Foundation.h>

@interface user : NSObject <NSCoding>

@property(nonatomic,retain)NSString *name;

@property(nonatomic,retain)NSString *email;

@property(nonatomic,retain)NSString *pwd;

@property(nonatomic,assign)int age;

@end

#import "user.h"

#define AGE @"age"

#define NAME @"name"

#define EMAIL @"email"

#define PASSWORD @"password"

@implementation user

//对属性编码

- (void)encodeWithCoder:(NSCoder *)aCoder

{

[aCoder encodeInt:_ageforKey:@"age"];

[aCoder encodeObject:_nameforKey:AGE];

[aCoder encodeObject:_emailforKey:EMAIL];

[aCoder encodeObject:_pwdforKey:PASSWORD];

}

//对属性解码

- (id)initWithCoder:(NSCoder *)aDecoder

{

self=[super init];

if(self)

{

self.age=[aDecoderdecodeIntForKey:AGE];

self.name=[aDecoderdecodeObjectForKey:NAME];

self.email=[aDecoderdecodeObjectForKey:EMAIL];

self.pwd=[aDecoderdecodeObjectForKey:PASSWORD];

}

returnself;

}

-(void)dealloc

{

[_name release];

[_email release];

[_pwd release];

[super dealloc];

}

@end

main函数的调用

    user *userObj=[[user alloc] init];userObj.age=33;userObj.email=@"adfdadf@qq.com";userObj.pwd=@"212212";userObj.name=@"ricard";NSString *path=[NSHomeDirectory() stringByAppendingPathComponent:@"Desktop/custom.text"];BOOL succ=[NSKeyedArchiver archiveRootObject:userObj toFile:path];if (succ) {NSLog(@"Hello, World!");user *usertemp=[NSKeyedUnarchiver unarchiveObjectWithFile:path];}

objective-C 自定义对象归档的实现相关推荐

  1. Object-C代码练习【自定义对象的归档】

    2019独角兽企业重金招聘Python工程师标准>>> // // main.m // 自定义对象的归档 // // Created by on 14-11-9. // Copyri ...

  2. iOS NSUserDefaults 简介 NSUserDefaults 存储自定义对象

    摘要 NSUserDefaults适合存储轻量级的本地数据,一些简单的数据(NSString类型的)例如密码,网址等,NSUserDefaults肯定是首选,但是如果我们自定义了一个对象,对象保存的是 ...

  3. 读写应用程序数据-NSUserDefault、对象归档(NSKeyedArchiver)、文件操作

    ios中数据持久化存储方式一般有5种:NSUserDefault.对象归档(NSKeyedArchiver).文件操作.数据库存储(SQLite3).CoreData. 1.NSUserDefault ...

  4. NSUserDefaults 、对象归档

    NSUserDefaults @interface Person : NSObject <NSCoding> @property (nonatomic, assign) NSInteger ...

  5. iOS-NSUserDefaults缓存自定义对象

    转载自:http://my.oschina.net/u/1245365/blog/294449 转载请保留原地址 摘要 NSUserDefaults适合存储轻量级的本地数据,一些简单的数据(NSStr ...

  6. 通过YYCache存储自定义对象

    如果保存的自定义对象不遵守NSCoding的协议或不实现NSCoding协议的方法,就不能使用YYDiskCache进行长期缓存.(原来所有原生的类都是实现了NSCoding协议,在归档的过程中进行了 ...

  7. 如何使用YYCache存储自定义对象

    YYCache是一个缓存框架,由YYCache.YYDiskCache.YYMemoryCache和YYKVStorage组成.在项目开发过程中,想通过YYCache存储一个自定义对象,这个对象包括文 ...

  8. java查询结果自定义显示_JPA自定义对象接收查询结果集操作

    最近使用JPA的时候,碰到需要自定义查询结果集的场景,网上搜了一下,都是需要自定义方法写一大串代码实现的,太繁琐了,有那时间还不如用mybaits. 用JPA就是要尽量通过声明接口解决持久层问题,要不 ...

  9. YOLOv5实现自定义对象训练与OpenVINO部署全解析

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自:opencv学堂 大家好,前面写了一个OpenVINO部 ...

最新文章

  1. 【Web安全】内网渗透研究之利用MSF和Impacket工具拿域控
  2. 表格缓存问题_缓存常见问题,一网打尽哦!
  3. ibm liberty_使用Open Liberty的开发模式最大程度地缩短周转时间
  4. inputstreamreader未关闭会导致oom_Linux内核OOM机制分析和防止进程被OOM杀死的方法...
  5. 5 计算机组成原理第四章 指令系统
  6. java jxl poi_「excle下载」java实现下载excle(jxl、poi 两种方式) - seo实验室
  7. 华为当个pl怎么样_华为员工吐槽:画饼、忽悠、洗脑,有些pl、pm怎么可以那么坏?...
  8. php mysql账号注册_php mysql用户注册登陆代码_PHP教程
  9. 内网创建https网站的SSL证书、代码签名证书
  10. 经典解读商业智能BI、大数据、数据中台三者关系
  11. 【HTML/CSS】HTML/CSS个人学习总结
  12. excel中单元格的绝对引用和相对引用
  13. php表格链接地址,wps表格如何制作目录及超链接?
  14. BeautifulSoup实战
  15. C++设计模式 温故知新李建忠(BooLan、GeekBand)
  16. S3存储桶策略(S3 Bucket Policies)
  17. Word-1:使用poi-tl引擎导出word文档
  18. 帮我写一份演化博弈的MATLAB代码
  19. 杰理之杰理充电仓方案选型【篇】
  20. arduino uno r3 控制42不进电机+TB6600驱动

热门文章

  1. unity 模型渐变消失_Unity 雨水滴到屏幕效果
  2. native封装卡片 react_自己动手封装一个React Native多级联动
  3. java runtime类高级,java入门 -- RunTime类
  4. Science上发表的超赞聚类算法
  5. 软件素材---linux C语言:拼接字符串函数 strcat的用例(与char数组联合使用挺好)...
  6. hadoop之 Hadoop1.x和Hadoop2.x构成对比
  7. 按钮随复选框选中与取消变换样式
  8. OpenSSL 与 SSL 数字证书概念贴
  9. 关于NSKeyedArchiver的编码格式
  10. NDK error Error 126 make: *** Deleting file