iOS数据持久化方案

2017-06-15  本文已影响76人  337b94dc718f

前言

一、直接写入(writeToFile)

1.使用场景

2.使用方法

1)写 - writeFile:atomically:
2)读 - initWithContentsOfFile:

initWithContentsOfFile:是比较通用的初始化方法。NSArray,NSDictionary有自己的类初始化方法,arrayWithContentsOfFile:和 dictionaryWithContentsOfFile:

3.优势

4.劣势

二、NSUserDefaults

NSUserDefaults原理也是通过键值对形式将信息保存到plist文件中,存储路径为<Application_Home>/Library/Preferences

1.使用场景

2.使用方法

获取共享单例

NSUserDefaults *defautls = [NSUserDefaults standardUserDefaults];
1)存
[defaults setObject:@"stringValue" forKey:@"keyName"];
[defaults setBool:YES forKey:@"AllowVoice"];
2)取
[defaults objectForKey:@"keyName"];
[defaults boolForKey:@"AllowVoice"];
3)删
[defaults removeObjectForKey:@"AllowVoice"];

NSUserDefaults更改了数据之后,并非立即写入磁盘,而是根据时间戳定时写入,若App闪退,则数据可能丢失。所以,如果是比较重要的数据,则需再调用[defaults synchronize],使更改立即生效。但,调用这个方法之后那些没被修改的值也会更新,所以建议在App即将退出时调用即可。

3.优势

三、NSKeyedArchiver

1.使用场景

2.使用方法

3.优势

4.劣势

四、SQLite3

1.简介

2.使用方法

3.优势

4.劣势

五、FMDB

1.简介

2.使用方法

3.优势

六、Core Data

1.使用场景

2.优势

3.劣势

六、Key-Chain

1.使用场景

2.使用方法

// 查询
OSStatus SecItemCopyMatching(CFDictionaryRef query, CFTypeRef *result);

// 添加
OSStatus SecItemAdd(CFDictionaryRef attributes, CFTypeRef *result);

// 更新
KeyChain中的ItemOSStatus SecItemUpdate(CFDictionaryRef query, CFDictionaryRef attributesToUpdate);

// 删除
KeyChain中的ItemOSStatus SecItemDelete(CFDictionaryRef query)

3.优势

参考

iOS 数据存储的常用方式
iOS存储介绍
iOS 中数据持久化的几种方式
iOS应用架构谈 本地持久化方案及动态部署
iOS SQLite
iOS Core Data
IOS开发之iCloud开发(数据与文档的读写删除)

上一篇 下一篇

猜你喜欢

热点阅读