第5章 数据存储与管理
在开发iOS应用时,数据存储与管理是一个非常重要的环节。无论是在应用运行时临时存储数据,还是需要持久化存储用户数据,iOS系统都提供了多种解决方案。本章将详细介绍iOS中常用的数据存储方法,包括UserDefaults
、Core Data
和文件系统操作。
5.1 UserDefaults:轻量级的数据存储
UserDefaults
是iOS中一个轻量级的数据存储方案,适用于存储简单的键值对数据,例如用户偏好设置、简单配置信息等。UserDefaults
的数据会持久化存储在设备上,即使应用关闭后数据也不会丢失。
5.1.1 基 本用法
1. 存储数据
let defaults = UserDefaults.standard
defaults.setValue("张三", forKey: "username") // 存储字符串
defaults.set(true, forKey: "isSignedIn") // 存储布尔值
defaults.set(25, forKey: "age") // 存储整数
defaults.set(Date(), forKey: "lastLoginDate") // 存储日期
defaults.set(["apple", "banana"], forKey: "fruits") // 存储数组
2. 读取数据
let username = defaults.string(forKey: "username") // 获取字符串
let isSignedIn = defaults.bool(forKey: "isSignedIn") // 获取布尔值
let age = defaults.integer(forKey: "age") // 获取整数
let lastLoginDate = defaults.object(forKey: "lastLoginDate") as? Date
let fruits = defaults.array(forKey: "fruits") as? [String]
3. 删除数据
defaults.removeObject(forKey: "username") // 删除单个键值对
defaults.removePersistentDomain(forName: Bundle.main.bundleIdentifier!) // 删除所有UserDefaults数据
5.1.2 使用场景
- 用户偏好设置(如主题颜色、语言选择等)
- 存储应用的简单状态信息(如是否登录、上次登录时间等)
- 不适合存储大量数据或复杂的数据结构
5.2 Core Data:强大的数据管理框架
Core Data
是iOS中一个功能强大的数据持久化框架,适用于管理复杂的数据模型。它支持对象关系映射(ORM),能够高效地存储和检索数据。
5.2.1 创建数据模型
在Xcode中创建Core Data实体:
- 在项目中创建
.xcdatamodeld
文件。 - 添加实体(Entity),并定义属性(Attributes)。
- 设置属性的类型(如String、Date、Integer等)。
5.2.2 核心概念
- 实体(Entity):对应数据库中的表。
- 属性(Attribute):对应表中的字段。
- 关系(Relationship):表示实体之间的关联。
- 上下文(NSManagedObjectContext):用于管理数据的增删改查操作。
- 持久化存储协调器(NSPersistentStoreCoordinator):管理数据的存储方式(如SQLite、内存存储等)。
5.2.3 示例代码
1. 创建上下文
let appDelegate = UIApplication.shared.delegate as! AppDelegate
let context = appDelegate.persistentContainer.viewContext