一、你的App真的”记住”用户了吗?
有没有遇到过这种情况?用户刚设置的个性化主题,重启应用就恢复默认;辛苦记录的健身数据,手机没电后全都不见。别慌,你不是一个人!这就是iOS持久化存储要解决的核心问题——让数据真正”活”在设备里。
二、5种必须掌握的存储工具箱
iOS提供了多种存储方案,就像不同容量的行李箱:
- 迷你包:UserDefaults – 适合存用户偏好设置(字体大小、夜间模式开关)
- 文件柜:文件存储 – 处理图片缓存、文档等结构化数据
- 智能管家:Core Data – 管理复杂数据关系的专业选手
- 表格大师:SQLite – 关系型数据库,适合需要复杂查询的场景
- 保险箱:Keychain – 存放密码、密钥等敏感信息
三、新手首选:UserDefaults实战
让我们从最简单的开始,用3行代码实现数据持久化:
// 存数据
UserDefaults.standard.set(true, forKey: "isDarkMode")
// 取数据
let mode = UserDefaults.standard.bool(forKey: "isDarkMode")
注意这两个”雷区”:
- 不要存储超过500KB的数据
- 敏感信息记得加密后再存储
四、文件存储的生存法则
当需要保存用户生成的图片时,可以这样操作:
let docsDir = FileManager.default.urls(for: .documentDirectory,
in: .userDomainMask).first!
let imagePath = docsDir.appendingPathComponent("avatar.jpg")
try? imageData.write(to: imagePath)
文件存储要特别注意:
- 大文件建议存Caches目录(可被系统清理)
- 重要数据存Documents目录
- 临时文件放tmp目录(应用关闭自动删除)
五、数据安全必修课
见过被下架的应用吗?很多都栽在数据安全上。务必做到:
- 敏感数据必须使用Keychain存储
- 本地数据库要加密(SQLCipher是不错选择)
- 用户隐私数据在后台线程处理
小编观点
别被各种存储方案吓到,记住这个选择口诀:小数据用UserDefaults,文件缓存选沙盒,复杂结构上Core Data,敏感信息进Keychain。先动手实现最简单的存储功能,再逐步探索更复杂的方案,你会发现持久化存储比想象中简单!