一、思维脑图
二、缓存思想
- 数据库底层基于Sqlite。
每个数据库表只有Key, Value两个字段。
直接将JSON数据存储到Value中,并设置Key。
- 通过Key查找对应Value数据,来进行数据增删改查操作,并更新视图。
1.使用SDWebImage缓存图片。
2.使用YTKKeyValueStore更方便使用FMDB。
3.使用FMDB操作数据库。
SDWebImage官方地址: https://github.com/rs/SDWebImage
YTKKeyValueStore官方地址: https://github.com/yuantiku/YTKKeyValueStore
FMDB官方地址: https://github.com/ccgus/fmdb
三、使用YTKKeyValueStore操作数据库
iOS端数据量不大,使用最简单直接的Key-Value存储就能带来开发上的效率优势。
1.Model层的代码编写简单,易于测试。
2.由于Value是JSON格式,所以在做Model字段更改时,易于扩展和兼容。
- 简单使用
1 | //1.打开数据库(若有),创建数据库(若无) |
- 打开(创建)数据库
默认创建在Document路径下。
若打开的数据库不存在则创建。
1 | // 打开名为test.db的数据库,如果该文件不存在,则创新一个新的。 |
- 创建数据库表
若创建的表存在则忽略。
1 | YTKKeyValueStore *store = [[YTKKeyValueStore alloc] initDBWithName:@"test.db"]; |
- 读写数据
通过Key-Value来读写数据库表中数据。
Value支持类型:NSString, NSNumber, NSDictionary,NSArray。
1 | //写入数据 |
- 删除数据
1 | // 清除数据表中所有数据 |
- 其他
YTKKeyValueItem类带有createdTime字段,可以获得该条数据的插入(或更新)时间,以便上层做复杂的处理(例如用来做缓存过期逻辑)。
1 | // 获得指定key的数据 |