IOS数据持久化之对象归档
来源:互联网 发布:速卖通seo 编辑:程序博客网 时间:2024/05/18 03:57
例如:对person 对象进行归档。
首先。person.h文件
#import <Foundation/Foundation.h>
@interface JPerson : NSObject <NSCoding>
@property(nonatomic,copy)NSString *name;
@property(nonatomic,assign)int age;
@property(nonatomic,assign)double height;
@end
之后person.m 文件 声明两个方法 一个写 一个读
#import "JPerson.h"
@implementation JPerson
#pragma mark 将对象归档的时候会调用(将对象写入文件前会调用)
//在这个方法说清楚
//哪些属性需要存储
//怎样存储这些属性
- (void)encodeWithCoder:(NSCoder *)encoder
{
//将_name属性进行编码
[encoder encodeObject:_name forKey:@"name"];
[encoder encodeInt:_age forKey:@"age"];
[encoder encodeDouble:_height forKey:@"height"];
}
#pragma mark 当从对象中解析时 调用。
//这个方法说清楚
//1.哪些属性需要解析
//2,怎样解析这些属性
-(id)initWithCoder:(NSCoder *)decode
{
if (self = [super init]) {
_name = [decode decodeObjectForKey:@"name"];
_age = [decode decodeIntForKey:@"age"];
_height = [decode decodeDoubleForKey:@"height"];
}
return self;
}
@end
在 你需要读写的 .m 文件下实现
这里 是在点击按钮的时候 实现
- (IBAction)Write {
JPerson *p = [[JPerson alloc]init];
p.name = @"jin";
p.age = 10;
p.height = 176.0;
//有个类 键值编码
NSString *path = @"/Users/macbookair/Desktop/person.data";
//归档
[NSKeyedArchiver archiveRootObject:p toFile:path];
}
- (IBAction)read {
NSString *path = @"/Users/macbookair/Desktop/person.data";
//读档 (反归档)
JPerson *p = [NSKeyedUnarchiver unarchiveObjectWithFile:path];
NSLog(@"%@--%d---%f",p.name ,p.age ,p.height);
}
ok 查看 输出 :
- IOS数据持久化之对象归档
- iOS 对象持久化之- 归档 archiving
- iOS经典讲解之复杂对象的数据持久化-归档与反归档
- iOS数据持久化之归档
- IOS数据持久化之归档NSKeyedArchiver
- iOS数据持久化之归档
- iOS数据持久化之NSKeyedArchiver(归档)
- iOS数据持久化之归档NSKeyedArchiver
- ios 数据持久化之 归档
- 《精通iOS开发·第六版》数据持久化基础知识之对象归档持久化
- IOS之数据持久化(归档与反归档)
- iOS之数据持久化 - 归档与反归档
- 数据持久化-对象归档
- iOS 归档持久化数据
- iOS数据持久化 归档
- IOS数据持久化--归档
- iOS 数据持久化二-对象归档
- iOS 数据持久化二-对象归档
- 使用 vmware+windbg 分析调试 windows 7 内核
- JavaScript跨域方法学习总结
- listview的item中有checkbox,仍要整个item响应点击或长按事件
- SQL Server 将查询结果导出插入(insert)语句的简单方式
- leetcode || 104、Maximum Depth of Binary Tree
- IOS数据持久化之对象归档
- Intellij IDEA 14中使用MyBatis-generator 自动生成MyBatis代码
- boost库asio详解3——io_service作为work pool
- iOS应用开发及Xcode开发工具使用总结
- Nginx Tomcat 负载均衡配置
- linux 下ps指令详解
- Altium Designer 覆铜时过孔连接形式的设置——只将过孔连接设置为 Direct Connect
- Java 多线程实现接口Runnable和继承Thread区别
- 细说 Form (表单)