objective-C 自定义对象归档的实现
自定义对象要实现归档必须实现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 自定义对象归档的实现相关推荐
- Object-C代码练习【自定义对象的归档】
2019独角兽企业重金招聘Python工程师标准>>> // // main.m // 自定义对象的归档 // // Created by on 14-11-9. // Copyri ...
- iOS NSUserDefaults 简介 NSUserDefaults 存储自定义对象
摘要 NSUserDefaults适合存储轻量级的本地数据,一些简单的数据(NSString类型的)例如密码,网址等,NSUserDefaults肯定是首选,但是如果我们自定义了一个对象,对象保存的是 ...
- 读写应用程序数据-NSUserDefault、对象归档(NSKeyedArchiver)、文件操作
ios中数据持久化存储方式一般有5种:NSUserDefault.对象归档(NSKeyedArchiver).文件操作.数据库存储(SQLite3).CoreData. 1.NSUserDefault ...
- NSUserDefaults 、对象归档
NSUserDefaults @interface Person : NSObject <NSCoding> @property (nonatomic, assign) NSInteger ...
- iOS-NSUserDefaults缓存自定义对象
转载自:http://my.oschina.net/u/1245365/blog/294449 转载请保留原地址 摘要 NSUserDefaults适合存储轻量级的本地数据,一些简单的数据(NSStr ...
- 通过YYCache存储自定义对象
如果保存的自定义对象不遵守NSCoding的协议或不实现NSCoding协议的方法,就不能使用YYDiskCache进行长期缓存.(原来所有原生的类都是实现了NSCoding协议,在归档的过程中进行了 ...
- 如何使用YYCache存储自定义对象
YYCache是一个缓存框架,由YYCache.YYDiskCache.YYMemoryCache和YYKVStorage组成.在项目开发过程中,想通过YYCache存储一个自定义对象,这个对象包括文 ...
- java查询结果自定义显示_JPA自定义对象接收查询结果集操作
最近使用JPA的时候,碰到需要自定义查询结果集的场景,网上搜了一下,都是需要自定义方法写一大串代码实现的,太繁琐了,有那时间还不如用mybaits. 用JPA就是要尽量通过声明接口解决持久层问题,要不 ...
- YOLOv5实现自定义对象训练与OpenVINO部署全解析
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自:opencv学堂 大家好,前面写了一个OpenVINO部 ...
最新文章
- 【Web安全】内网渗透研究之利用MSF和Impacket工具拿域控
- 表格缓存问题_缓存常见问题,一网打尽哦!
- ibm liberty_使用Open Liberty的开发模式最大程度地缩短周转时间
- inputstreamreader未关闭会导致oom_Linux内核OOM机制分析和防止进程被OOM杀死的方法...
- 5 计算机组成原理第四章 指令系统
- java jxl poi_「excle下载」java实现下载excle(jxl、poi 两种方式) - seo实验室
- 华为当个pl怎么样_华为员工吐槽:画饼、忽悠、洗脑,有些pl、pm怎么可以那么坏?...
- php mysql账号注册_php mysql用户注册登陆代码_PHP教程
- 内网创建https网站的SSL证书、代码签名证书
- 经典解读商业智能BI、大数据、数据中台三者关系
- 【HTML/CSS】HTML/CSS个人学习总结
- excel中单元格的绝对引用和相对引用
- php表格链接地址,wps表格如何制作目录及超链接?
- BeautifulSoup实战
- C++设计模式 温故知新李建忠(BooLan、GeekBand)
- S3存储桶策略(S3 Bucket Policies)
- Word-1:使用poi-tl引擎导出word文档
- 帮我写一份演化博弈的MATLAB代码
- 杰理之杰理充电仓方案选型【篇】
- arduino uno r3 控制42不进电机+TB6600驱动
热门文章
- unity 模型渐变消失_Unity 雨水滴到屏幕效果
- native封装卡片 react_自己动手封装一个React Native多级联动
- java runtime类高级,java入门 -- RunTime类
- Science上发表的超赞聚类算法
- 软件素材---linux C语言:拼接字符串函数 strcat的用例(与char数组联合使用挺好)...
- hadoop之 Hadoop1.x和Hadoop2.x构成对比
- 按钮随复选框选中与取消变换样式
- OpenSSL 与 SSL 数字证书概念贴
- 关于NSKeyedArchiver的编码格式
- NDK error Error 126 make: *** Deleting file