你的App会”失忆”吗?
有没有想过,当你关闭一个天气App再打开时,它为什么还记得你选择的城市?当你调整手机亮度后,系统又是如何记住这个设置的?今天要介绍的NSUserDefaults,就是让iOS应用拥有”记忆”的秘密武器!
什么是NSUserDefaults?
简单来说,它是iOS系统提供的数据保险箱。专门用于存储:
- 用户偏好设置(如主题颜色、字体大小)
- 简单的应用状态(如是否首次启动)
- 小型数据(如搜索历史记录)
就像给App配了个随身笔记本,可以随时记录重要信息。而且数据会永久保存,即使App被强制关闭也不会丢失。
5分钟上手教程
跟着下面3个步骤操作,马上掌握基本用法:
- 获取默认存储对象
let defaults = UserDefaults.standard
- 存储数据
defaults.set("北京", forKey: "currentCity")
- 读取数据
let city = defaults.string(forKey: "currentCity")
新手必知的6个要点
- 🗂️ 支持存储类型:String/Int/Bool/Data/Array/Dictionary等基础类型
- ⚠️ 不能直接存储自定义对象(需要先转成Data)
- ⏱️ 立即写入磁盘要调用
synchronize()
- 🔑 键名推荐用常量管理,避免拼写错误
- 📱 不同App之间的数据完全隔离
- 💾 存储位置在沙盒的Library/Preferences目录
典型使用场景
举个栗子🌰:
- 记住用户登录状态
- 保存音量调节参数
- 记录App版本更新状态
- 存储用户个性化配置
- 缓存简单的接口数据
小编观点
虽然NSUserDefaults用起来像喝水一样简单,但千万别把它当”万能储物柜”。当需要存储大量数据或复杂结构时,建议考虑CoreData或Realm。就像你不会用便签纸写小说,选择合适的工具才能事半功倍!