iOS 面试 | 如果要存储用户的账号密码,你会选择什么方案?

💡 原文中文,约1200字,阅读约需3分钟。
📝

内容提要

KeyChain服务是一种可靠的数据持久化方案,可以保存用户的账号密码,并通过iCloud同步。其他常见的持久化方案包括NSUserDefault、MMKV、NSKeyedArchiver、Sqlite、CoreData、FMDB、Realm和WCDB。每种方案都有不同的特点和适用场景。

🎯

关键要点

  • KeyChain服务是一种可靠的数据持久化方案,适合保存用户的账号密码,并支持iCloud同步。

  • 常见的持久化方案包括NSUserDefault、MMKV、NSKeyedArchiver、Sqlite、CoreData、FMDB、Realm和WCDB,各有不同特点和适用场景。

  • NSUserDefault适合存储不敏感的App配置信息和用户偏好设置,支持基本数据类型和自定义对象。

  • MMKV是NSUserDefault的增强版,适合读写频繁且不敏感的数据,使用内存映射技术,数据安全性高。

  • NSKeyedArchiver是NSUserDefault的加密版,适合存储敏感和复杂的自定义对象数据。

  • 原生Sqlite是最基础的数据库,适合各种数据,但使用繁琐,维护成本高。

  • CoreData是Apple对Sqlite的封装,学习成本高,功能较差,不建议使用。

  • FMDB是对Sqlite的封装,线程安全,适合存储较大数据量。

  • Realm是自建的MVCC数据库,更直观易用,但不太稳定,需谨慎使用。

  • WCDB是微信封装的Sqlite,优化了性能,使用成本低,推荐使用。

➡️

继续阅读