很早以前就想总结一下iOS数据存储的相关知识,今天得空总结如下:
iOS常用的存储方式
1、偏好设置Preference
2、Plist存储
3、归档,解档
4、SQLite
5、CoreData
6、三方数据存储框架
应用沙盒
1、应用沙盒就是文件系统目录,与其他文件系统隔离

3、获取沙盒路径:

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


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


3、存储方式:


4、取出方式:

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

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

4、需遵循NSCoding协议:

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

3、定义数据库:static sqlite3 *db;
4、打开数据库:sqlite3_open([strPath UTF8String], &db)
5、创建表格(create table User),增(insert into User),删(delete from User),修(update User)

6、查询(select * from User):

7、关闭数据库:sqlite3_close(db)
CoreData
1、创建模型文件(系统创建、手动创建):
2、创建实体及相关属性:


3、创建实体类:


4、生成上下文、关联数据库:

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

10、删除、查询、修改:

11、排序:

12、NSManagedObjectContext save保存
三方FMDB
1、GitHub链接
2、一个FMDB对象即为一个数据库
3、不用考虑线程的问题
4、添加事务,捕获异常回滚等
5、相关操作
KeyChain钥匙链
1、安全存储
2、security安全框架
3、secItem来增删查改
参考:
iOS本地数据持久化
网友评论