NSKeyedArchiver的使用

NSKeyedArchiver是加密形式的保存数据。

上代码。

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view.

    self.title=@"NSKeyedArchiver";

    [self write];
    [self read];

}

-(void)write
{
    NSDictionary* dataDic = [NSDictionary dictionaryWithObjectsAndKeys:@"李华",@"name",@"女",@"sex",@"20",@"age",nil];
    NSLog(@"----write---dataDic---%@",dataDic);

    NSData *archiveData = [NSKeyedArchiver archivedDataWithRootObject:dataDic];
    NSUserDefaults *archiveDefaults=[NSUserDefaults standardUserDefaults];
    [archiveDefaults setObject:archiveData forKey:@"ARCHIVE"];
    [archiveDefaults synchronize];
}
-(void)read
{

    NSUserDefaults *readDefault=[NSUserDefaults standardUserDefaults];
    NSData *readDic=[readDefault objectForKey:@"ARCHIVE"];

    NSDictionary  *dataDic = [[NSDictionary alloc]initWithDictionary:[NSKeyedUnarchiver unarchiveObjectWithData:readDic]];

    NSLog(@"---read---dataDic---%@",dataDic);

}

打印出的结果:

2014-06-26 09:38:51.375 NSKeyedArchiver的使用[1153:60b] ----write---dataDic---{
    age = 20;
    name = "\U674e\U534e";
    sex = "\U5973";
}
2014-06-26 09:38:51.376 NSKeyedArchiver的使用[1153:60b] ---read---dataDic---{
    age = 20;
    name = "\U674e\U534e";
    sex = "\U5973";
}

NSKeyedArchiver的使用,布布扣,bubuko.com

时间: 2024-10-20 00:02:52

NSKeyedArchiver的使用的相关文章

IOS学习之NSKeyedArchiver、NSKeyedUnarchiver归档

IOS保存文件的其中一种形式是NSKeyedArchiver.NSKeyedUnarchiver归档: 以下内容以一个to-do lists软件为例,ChecklistItem为一个项目(数据模型),包含一个字符串text和一个BOOL标记checked,items是视图控制器的NSMutableArray,包含多个ChecklistItem,保存数据时以items为整体保存到.plist文件,读取则一样. 1.首先在数据模型的.h文件中实现协议<NSCoding>,例如: @interfac

归档 NSKeyedArchiver

复杂对象无法象 NSString,NSArray等简单对象一样直接通过 writeToFile 实现持久化,当对复杂对象进行持久化时需要将其转化为 NSData (归档),但获取数据时,将 NSData 转化为复杂对象 (反归档) 下面通过一个简单的 Person 类实现归档和反归档: 1.新建 Peoson 类,有两个属性 name,age,其需要遵守 <NSCoding> 协议,实现- (void)encodeWithCoder: 和 - (instancetype)initWithCod

iOS边练边学--应用数据存储的常用方式(plist,Preference,NSKeyedArchiver)其中的三种

iOS应用数据存储的常用方式: XML属性列表(plist)归档 Preference(偏好设置) NSKeyedArchiver归档(NSCoding) SQLite3--这里暂且不讲 Core Data--这里暂且不讲 一.应用沙盒 每个iOS应用都有自己的应用沙盒(应用沙盒就是文件系统目录),与其他文件系统隔离.应用必须待在自己的沙盒里,其他应用不能访问该沙盒 应用沙盒的文件系统目录,如下图所示 二.应用沙盒结构分析 应用程序包:(上图中的Layer)包含了所有的资源文件和可执行文件 Do

初级数据持久化NSKeyedArchiver(二)

看代码: 1 #import "MainViewController.h" 2 #import "Student.h" 3 4 @interface MainViewController () 5 6 @end 7 8 @implementation MainViewController 9 10 - (void)viewDidLoad { 11 [super viewDidLoad]; 12 // Do any additional setup after loa

IOS数据持久化之归档NSKeyedArchiver, NSUserDefaults,writeToFile

//2.文件读写 //支持:NSString, NSArray , NSDictionay, NSData //注:集合(NSArray, NSDictionay)中得元素也必须是这四种类型, 才能够进行文件读写 //string文件读写 NSString *string = @"假如给我有索纳塔"; //Document NSString *docPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUs

IOS数据持久化之归档NSKeyedArchiver

IOS数据持久化的方式分为三种: 属性列表 (自定义的Property List .NSUserDefaults) 归档 (NSKeyedArchiver) 数据库 (SQLite.Core Data.第三方类库等) 下面主要来介绍一个归档NSKeyedArchiver. 归档(又名序列化),把对象转为字节码,以文件的形式存储到磁盘上:程序运行过程中或者当再次重写打开程序的时候,可以通过解归档(反序列化)还原这些对象. 归档方式: 对Foundation框架中对象进行归档 对自定义的内容进行归档

ios数据存储之二 —— NSKeyedArchiver

1 #import <Foundation/Foundation.h> 2 3 @interface NJContatc : NSObject <NSCoding> 4 5 @property (nonatomic, copy) NSString *name; 6 @property (nonatomic, copy) NSString *phoneNumber; 7 @property (nonatomic, copy) NSString *email; 8 @end 9 10

(一一五)利用NSKeyedArchiver实现任意对象转为二进制

[应用背景] 在数据库中存储数据时,如果对象过于复杂,又不必要创建复杂的表,可以直接把整个对象转化为二进制存入数据库字段,然后取出后再还原即可. [实现方法] 在PHP中,使用序列化和反序列化可以实现这样的功能. 在OC中,使用NSKeyedArchiver和NSKedUnarchiver可以实现对象转二进制和二进制转对象,要实现转化,必须遵循NSCoding协议,并且实现encodeWithCoder方法用来转化数据为二进制,实现initWithCoder实现二进制数据还原成类对象,OC的常见

IOS中利用NSKeyedArchiver进行数据的归档和恢复

1.相关知识点: <1> 可以利用NSKeyedArchiver 进行归档和恢复的对象类型:NSString .NSDictionary.NSArray.NSData.                        NSNumber等 <2> 使用是必须遵循NSCoding协议对象,实现两个方法: encodeWithCoder:归档对象时,将会调用该方法. initWithCoder:每次从文件中恢复对象时,调用该方法. 2.简单例子阐述详细步骤 <1> 创建一个学生