iOS 数据持久化

很早以前就想总结一下iOS数据存储的相关知识,今天得空总结如下:

iOS常用的存储方式

1、偏好设置Preference
2、Plist存储
3、归档,解档
4、SQLite
5、CoreData
6、三方数据存储框架

应用沙盒

1、应用沙盒就是文件系统目录,与其他文件系统隔离

2、沙盒路径结构如下:
iOS 数据持久化_第1张图片
image.png

3、获取沙盒路径:
iOS 数据持久化_第2张图片
image.png

偏好设置

1、偏好设置即NSUserDefault、数据沙盒中的Library/Preference
2、存储轻量级的本地数据,一般用于保存应用的配置信息等
3、支持的类型:NSNumber,NSString,NSDate、NSArray、NSDictionary、BOOL、NSData
4、保存的数据和取出的数据均为不可变的、以键值对的形式存取

5、不能保存自定义对象、需要synchronize同步
image.png
image.png

Plist存储

1、存储数组、字典,不能存储自定义的对象

2、形式:
iOS 数据持久化_第3张图片
11.png

iOS 数据持久化_第4张图片
image.png

3、存储方式:
image.png
iOS 数据持久化_第5张图片
image.png

4、取出方式:
image.png

归档、解档

1、可存储自定义的对象、文件和对象属性

2、归档方式:
image.png

3、解档方式(辅助类):
image.png

4、需遵循NSCoding协议:
image.png

YYModel

1、YYModelGitHub地址
2、YYModel中封装了归档、解档的相关方法,可直接使用
3、完成自定义对象类型和基础数据类型的转化
3、为NSArray、NSDictionary、NSObject等添加分类方法

SQLite数据库

1、添加libsqlite3.0.tbd
iOS 数据持久化_第6张图片
image.png

2、引入头文件
image.png

3、定义数据库:static sqlite3 *db;
4、打开数据库:sqlite3_open([strPath UTF8String], &db)

5、创建表格(create table User),增(insert into User),删(delete from User),修(update User)
image.png

6、查询(select * from User):
image.png

7、关闭数据库:sqlite3_close(db)

CoreData

1、创建模型文件(系统创建、手动创建):
iOS 数据持久化_第7张图片
image.png

2、创建实体及相关属性:
image.png
iOS 数据持久化_第8张图片
image.png

3、创建实体类:
iOS 数据持久化_第9张图片
image.png
iOS 数据持久化_第10张图片
image.png

4、生成上下文、关联数据库:
iOS 数据持久化_第11张图片
image.png

5、NSManagedObjectModel:以模型路径初始化(.momd)
6、NSPersistentStoreCoordinator(持久化存储助理:数据库):以model初始化,添加数据库路径和类型
7、NSManagedObjectContext:上下文,保存信息,对数据库进行操作,并关联持久化助理(store)
8、iOS10以后,统一为NSPersistentContainer,可用点语法获取上述所有属性
9、写入数据:
image.png

10、删除、查询、修改:
iOS 数据持久化_第12张图片
image.png

11、排序:
image.png

12、NSManagedObjectContext save保存

三方FMDB

1、GitHub链接
2、一个FMDB对象即为一个数据库
3、不用考虑线程的问题
4、添加事务,捕获异常回滚等
5、相关操作

KeyChain钥匙链

1、安全存储
2、security安全框架
3、secItem来增删查改

参考:
iOS本地数据持久化

你可能感兴趣的:(iOS 数据持久化)