NSKeyedArchiver归档存储
来源:互联网 发布:greenplum数据库 编辑:程序博客网 时间:2024/05/16 01:29
一、存储普通数据
1、获取沙盒存储路径
//1.1获取沙盒存储路径 NSString *doc = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject]; //1.2获取存储文件路径 NSString *plistPath = [doc stringByAppendingPathComponent:@"data.plist"];
2、存储数据
NSArray *data = @[@"abc",@23];[NSKeyedArchiver archiverRootObject:data toFile:self.plstPath];
二、对象保存(class)
如果对象是NSString、NSDictionary、NSArray、NSData、NSNumber等类型,可以直接用NSKeyedArchiver进行归档和恢复, 但不是所有的对象都可以直接用这种方法进行归档,只有遵守了NSCoding协议的对象才可以。
NSCoding协议方法
- encodeWithCoder:
每次归档对象时,都会调用这个方法。一般在这个方法里面指定如何归档对象中的每个实例变量,可以使用encodeObject:forKey:方法归档实例变量 initWithCoder:
每次从文件中恢复(解码)对象时,都会调用这个方法。一般在这个方法里面指定如何解码文件中的数据为对象的实例变量,可以使用decodeObject:forKey方法解码实例变量实例:
1、归档对象Person.m设置
@implementation Person//存储数据需要实现的方法- (void)encodeWithCoder:(NSCoder *)encoder { [encoder encodeObject:self.name forKey:@"name"]; [encoder encodeInt:self.age forKey:@"age"];}//读取数据需要实现的方法- (id)initWithCoder:(NSCoder *)decoder { if(self = [super init]){ self.name = [decoder decodeObjectForKey:@"name"]; self.age = [decoder decodeIntForKey:@"age"]; return self; }}- (void)dealloc { [super dealloc]; [_name release];}@end
2、存储对象Person
Person *person = [[Person alloc] init];person.name = @"张三";person.age = 27[NSKeyedArchiver archiverRootObject:person toFile:self.plstPath];
3、读取数据
Person *person = [NSKeyedUnarchiver unarchiverObjectWithFile:self.plistPath];NSLog(@"name:%@,age:%@",person.name,person.age);
0 0
- NSKeyedArchiver归档存储
- iOS开发------本地存储-NSKeyedArchiver & NSKeyedUnarchiver(归档)
- NSKeyedArchiver归档
- ios数据存储之--对模型对象归档(NSKeyedArchiver、NSKeyedUnarchiver)
- ios数据存储之--对模型对象归档(NSKeyedArchiver、NSKeyedUnarchiver)
- iOS 数据存储 归档普通对象 NSCoding NSKeyedArchiver
- ios数据存储之--对模型对象归档(NSKeyedArchiver、NSKeyedUnarchiver)
- ios数据存储之--模型对象归档(NSKeyedArchiver、NSKeyedUnarchiver)
- 利用NSKeyedArchiver归档对象
- NSKeyedArchiver归档的使用
- NSKeyedArchiver (对象归档)
- 归档— NSKeyedArchiver
- 使用NSKeyedArchiver归档
- 归档NSCoding、NSKeyedArchiver
- NSKeyedArchiver 归档和回档
- ios---NSKeyedArchiver 归档与恢复
- 文件归档NSKeyedArchiver操作方法整理
- ios:NSKeyedArchiver/NSKeyedUnarchiver(归档/解档)
- 147_阻止ViewPager滚动
- bzoj2342【SHOI2011】双倍回文
- 148_okhttp和Gson
- 计算机作品二等奖——魔幻镜像
- bzoj3790 神奇项链
- NSKeyedArchiver归档存储
- libevent介绍及示例
- bzoj3160 万径人踪灭
- 《图解HTTP》学习笔记(六)-确保Web安全的HTTPS
- centos6.5更换163的yum源
- Qt多线程中调用QTimer
- bzoj2882 工艺
- java泛型程序设计之泛型类
- 《大型网站技术架构:核心原理与案例分析》笔记