一、离线缓存
在项目开发中,通常都需要对数据进行离线缓存的处理,如新闻数据的离线缓存等。
说明:离线缓存一般都是把数据保存到项目的沙盒中。有以下几种方式
- 归档:NSCodeing、NSKeyedArchiver
- 偏好设置:NSUserDefaults
- Plist存储:writeToFile
提示:上述三种方法都有一个致命的缺点,那就是都无法存储大批量的数据,有性能的问题。
举例:使用归档
两个问题:
1. 数据的存取都必须是完整的,要求写入的时候要一次性写入,读取的时候要一次性全部读取,这涉及到应用的性能问题。
- 如果有1000条数据,此时要把第1001条数据存入,那么需要把所有的数据取出来,把这条数据加上去之后,再存入。
说明:以上的三种技术不能处理大批量数据的存储,大批量数据通常使用数据库来进行存储。
二、SQLite简单介绍
1.ios中数据的存储方式
Plist(NSArray\NSDictionary)
Preference(偏好设置\NSUserDefaults)
NSCoding(NSKeyedArchiver\NSkeyedUnarchiver)
SQLite3
Core Data
说明:
3是版本号,是SQLite的第三个版本。
core Data是对SQLite的封装,因为iOS中使用的SQLite是纯C语言的。
2.SQLite
1)什么是SQLite?
答:SQLite是一款轻型的嵌入式数据库,安卓和ios开发使用的都是SQLite数据库
2)特点(优点)
答:
(1)它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了
(2)它的处理速度比Mysql、PostgreSQL这两款著名的数据库都还快
3)什么是数据库
答:数据库(Database)是按照数据结构来组织、存储和管理数据的仓库
4)数据库的分类
答:可以分为2大种类
关系型数据库(主流)和对象型数据库(直接把内存中的对象塞入到数据库,对比关系型数据库而言性能不能很好,效率不高)
5)常用关系型数据库有哪些?
答:PC端:Oracle、MySQL、SQL Server、Access、DB2、Sybase
嵌入式\移动客户端:SQLite
6)数据库是如何存储数据的?
答:数据库的存储结构和excel很像,以表(table)为单位 。表由多个字段(列、属性、column)组成,表里面的每一行数据称为记录
7)数据库存储数据的步骤?
1)新建一张表(table)
2)添加多个字段(column,列,属性)
3)添加多行记录(row,record,每行存放多个字段对应的值)