iOS持久化概览
数据持久化大体上分文件和DB两大类,此外系统提供的keychain大概算第三类。
细分如下:
- 文件类
- plist
- 集合类直接序列化(writeToFile)
- 显式声明
atomically:YES
时是线程安全的
- 显式声明
- NSUserDefaults
- 主要用于存键值对,线程安全
- 集合类直接序列化(writeToFile)
- NSKeyedArchiver
- Model实现NSCoding协议即可,非线程安全
- plist
- DB类
- SQLite3
- 使用非常广泛的跨平台、轻量级、关系型db
- 非线程安全
- CoreData
- 官方基于SQLite的ORM框架
- 第三方
- FMDB
- 对SQLite的面向对象封装,线程安全
- Realm
- 自己搞的一套引擎,优秀的面向对象接口
- FMDB
- SQLite3
- keychain
- keychain是系统提供的用于安全存储的机制,主要放用户名、密码、其它凭证等。
- 特点是APP删除不会丢失,因此常用来存用户的唯一标识(另一个可用的方式是IDFA,但可被用户禁用)
参考: