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,优化了性能,使用成本低,推荐使用。
➡️