您的位置:首页 > 移动开发 > IOS开发

iOS本地的缓存的方式

2015-09-28 14:42 489 查看
一、 NSKeyedArchiver(归档)采用归档的形式来保存数据,该数据对象需要遵守NSCoding协议,并且该对象对应的类必须提供encodeWithCoder:和initWithCoder:方法。

// -------------遵循协议后必须实现的两个方法--------------

//1,编码。编码的是属性(对应于归档的时候)(序列化)

-(void)encodeWithCoder:(NSCoder *)aCoder

{

//需要对每一个属性就行编码

[aCoder encodeObject:self.name forKey:@"name"];//1,随便起名,但是必须跟下面的对应

[aCoder encodeObject:self.sex forKey:@"sex1"];

}

//2,解码。(对应的是反归档的时候)(反序列化)

-(id)initWithCoder:(NSCoder *)aDecoder

{

self = [super init];

if (self) {

//将编码好的数据,反编码回到本身的属性上

self.name = [aDecoder decodeObjectForKey:@"name"];

self.sex = [aDecoder decodeObjectForKey:@"sex1"];//2,必须跟上面的对应一样

}

return self;

}

//-------归档步骤

//1,有一个遵守了NSCoding协议的复杂对象

//2,初始化对象

//3,创建一个NSMutableData

//4,使用NSMutableData初始化归档工具NSKeyedArchiver

//5,通过工具NSKeyedArchiver将复杂对象编码到NSMutableData里面

//6,结束编码

//7,将NSMutableData写入本地

//-------反归档步骤

//1,通过路径拿到NSData数据(里面存放的是Person复杂对象跟key值)

//2,通过NSData初始化一个反归档工具NSKeyedUnarchiver

//3,通过key值拿到编码的对象,把编码好的数据反编码到本身的属性上

//4,通过初始化一个Person类,通过key值接收解档后的数据

//5,结束反归档

二、 NSUserDefaults:用来保存应用程序设置和属性、用户保存的数据。用户再次打开程序或开机后这些数据仍然存在。NSUserDefaults可以存储的简单数据类型包括:NSData、NSString、NSNumber、NSDate、NSArray、NSDictionary。(版本号,是否首次登陆,存储的是登陆之后的用户名和用户信息)

//存值

NSUserDefaults *user1 = [NSUserDefaults standardUserDefaults];

[user1 setObject:@"名字" forKey:@"name"];

//取值

NSUserDefaults *user = [NSUserDefaults standardUserDefaults];

NSLog(@"%@",[user objectForKey:@"name"]);

三、 Write写入方式:永久保存在磁盘中。(直接写入本地,遵守了NSCoding协议Foundation框架下的简单对象:NSString、NSArray、NSDictionary、NSData二进制对象)

1,二进制对象可能存储的是图像、字符串等等

2,创建写入的地址,后面拼接文件名,如果没有的话,会自动创建,如果有,直接写入,文件的格式没什么用

注意:

1,直接写入本地的时候,第一次写入之后,如果再次对同一个文件进行写入操作,会覆盖前面的数据

2, 一次只能写入一条数据(这是当一次需要写入大量数据时用数组写入的原因)

3,如果不想覆盖,就先读出来,然后一起再写进去

4,所有能够直接写入本地的,一定要遵守NSCoding协议

iOS 只有 NSString、NSArray、NSDictionary、NSData(以及它们对应的可变量)可以直接在沙盒写入,其他的一概不能直接写入----而且数组或者字典等这些容器里面存储的数据必须是上述数据-------

四、 SQLite(FMDB、CoreData)

NSCoding + NSKeyedArchiver实现复杂对象的存储。

常见的数据库:1,SQL 2,My SQL 3,Oracle
数据库:1,以一定方式存储在一起
2,能为多个用户共享
3,具有尽可能小得冗余度
4,与程序彼此独立的数据集合
一,库
二,表:主键,普通键,外键(其他表的主键)
三,字段

SQL命令:1,数据插入命令(Insert)
2,数据更新命令(Update)
3,数据删除命令(Delete)
4,数据检索命令(Select)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: