iOS持久化手段概览

iOS持久化概览

数据持久化大体上分文件和DB两大类,此外系统提供的keychain大概算第三类。

细分如下:

  • 文件类

    • plist

      • 集合类直接序列化(writeToFile)

        • 显式声明atomically:YES时是线程安全的
      • NSUserDefaults

        • 主要用于存键值对,线程安全
    • NSKeyedArchiver

      • Model实现NSCoding协议即可,非线程安全
  • DB类

    • SQLite3

      • 使用非常广泛的跨平台、轻量级、关系型db
      • 非线程安全
    • CoreData

      • 官方基于SQLite的ORM框架
    • 第三方

      • FMDB

        • 对SQLite的面向对象封装,线程安全
      • Realm

        • 自己搞的一套引擎,优秀的面向对象接口
  • keychain

    • keychain是系统提供的用于安全存储的机制,主要放用户名、密码、其它凭证等。
    • 特点是APP删除不会丢失,因此常用来存用户的唯一标识(另一个可用的方式是IDFA,但可被用户禁用)

参考:

iOS数据本地持久化方法总结

iOS面试-数据库比较:SQLite vs. Core Data vs. Realm

你可能感兴趣的:(ios)