iOS开发之数据以及对象归档与解归档
来源:互联网 发布:js base64 key 编辑:程序博客网 时间:2024/05/16 11:19
在开发过程中,我们难免要做一些数据的存储,例如用户账户密码的存储方便下次一键登录,收藏功能的实现有时候也会用到存储本地,诸如此类很多,对于数据存储,归档五一是比较好用的方法,下面说一下在iOS开发过程中的归档与解归档,总结了两种方式:
//--------------------------1.第一种归档方式-------------------
/***归档对象****/
NSArray *array = @[@"abc",@"123",@1234];
NSString *homePath = NSHomeDirectory();
NSString *path = [homePath stringByAppendingPathComponent:@"test.arc"];
BOOL success = [NSKeyedArchiver archiveRootObject:array toFile:path];
if (success) {
NSLog(@"archive success");
}
归档后大家就能在沙盒目录里面看到归档后的文件test.arc,如果找不到该文件在哪里,可以将path进行打印输出看一下,
NSLog("test.arc的路径在%@",path);
//**解归档***
NSString *homePath = NSHomeDirectory();
NSString *path = [homePath stringByAppendingPathComponent:@"test.arc"];
NSArray *array = [NSKeyedUnarchiver unarchiveObjectWithFile:path];
NSLog(@"%@",array);
//-----------------------2.第二种归档方式-----------------------
//***归档对象**//
NSString *homePath = NSHomeDirectory();
NSString *path = [homePath stringByAppendingPathComponent:@"archiver2.archiv"];
NSMutableData *data = [NSMutableData data];
NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data];
NSArray *array = @[@"jack",@"tom"];
[archiver encodeInt:100 forKey:@"age"];
[archiver encodeObject:array forKey:@"names"];
[archiver finishEncoding];
[archiver release];
BOOL success = [data writeToFile:path atomically:YES];
if (success) {
NSLog(@"archive success");
}
/***解归档对象**/
NSString *homePath = NSHomeDirectory();
NSString *path = [homePath stringByAppendingPathComponent:@"archiver2.archiv"];
NSData *data = [NSData dataWithContentsOfFile:path];
NSKeyedUnarchiver *unArchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data];
int age = [unArchiver decodeIntForKey:@"age"];
NSArray *names = [unArchiver decodeObjectForKey:@"names"];
[unArchiver release];
NSLog(@"age=%d,names=%@",age,names);
demo下载:
链接: http://pan.baidu.com/s/14Lc4Y 密码: 8diu
- iOS开发之数据以及对象归档与解归档
- iOS经典讲解之复杂对象的数据持久化-归档与反归档
- iOS开发 数据存取方法 对象归档
- IOS之数据持久化(归档与反归档)
- iOS之数据持久化 - 归档与反归档
- iOS之对象归档
- IOS数据持久化之对象归档
- iOS开发之自定义对象归档
- iOS开发 - 数据归档与恢复 NSKeyedArchiver
- iOS开发-归档与数据恢复
- iOS开发之归档
- iOS开发之归档
- iOS开发之归档
- ios-day12-04(ios开发中数据存储之NSKeyedArchiver归档(NSCoding)、普通对象如何归档、普通对象的子类如何归档)
- IOS开发中的归档与反归档
- IOS巅峰之归档与反归档
- IOS 对象的归档与解档
- iOS对象的归档与解档
- Maven学习
- 图解CodeSmith使用和实用教程一 - 入门和生成MIS项目实体层代码
- Settings-battery
- 静态方法和实例方法的区别
- exception in initAndListen: 12596 old lock file, terminating
- iOS开发之数据以及对象归档与解归档
- OpenLayers 3 之 使用地理数据传输格式GeoJSON
- poj1661 并查集简单运用
- 斐波那契数列计算时间复杂度之彻底分析
- IOS8 消息推送
- MyBatis一对多和多对一
- IO复习
- 围巾的纠结(并查集之非完整集合的子集合是否连成圈的问题)
- 欧拉图详解