iOS 数据持久化

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

iOS常用的存储方式

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

应用沙盒

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

2、沙盒路径结构如下:
image.png

3、获取沙盒路径:
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、形式:
11.png

image.png

3、存储方式:
image.png
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
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、创建模型文件(系统创建、手动创建):
image.png

2、创建实体及相关属性:
image.png
image.png

3、创建实体类:
image.png
image.png

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

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

10、删除、查询、修改:
image.png

11、排序:
image.png

12、NSManagedObjectContext save保存

三方FMDB

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

KeyChain钥匙链

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

参考:
iOS本地数据持久化

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1.CoreData 1.1 CoreData概述 1)Core data 是数据持久存储的最佳方式 2)Core...
    微春风阅读 9,335评论 0 10
  • 导语 数据持久化是一种非易失性存储技术,在重启动计算机或设备后也不会丢失数据,是将内存中的数据模型转换为存储模型,...
    树袋熊老公阅读 6,125评论 0 10
  • 本文转自iOS中几种数据持久化方案,仅用作个人记录学习之用。 概论 所谓的持久化,就是将数据保存到硬盘中,使得在应...
    iOS_肖晨阅读 4,017评论 0 46
  • 1.简介 数据持久存储是一种非易失性存储,在重启动计算机或设备后也不会丢失数据。持久化技术主要用于MVC模型中的m...
    公子无礼阅读 5,658评论 0 4
  • iOS开发-数据持久化 原文链接 Sindri的小巢 在程序开发中,数据层永远是程序的核心结构之一。我们将现实事物...
    人生路02阅读 4,088评论 1 4

友情链接更多精彩内容