Skip to content

13.1 存储和读取基本数据类型

UserDefaults 是一个方便的工具,用于在 iOS 应用中存储和检索少量数据。它特别适合存储用户偏好设置、应用配置和其他简单的数据类型。让我们一起探索如何使用它来存储和读取基本数据类型!🚀

存储基本数据类型

UserDefaults 允许你存储各种基本数据类型,包括:

  • 整数 (Int):存储整数值,例如 10-51000
  • 浮点数 (Float):存储单精度浮点数值,例如 3.14-2.718
  • 双精度浮点数 (Double):存储双精度浮点数值,提供更高的精度,例如 3.14159265359
  • 布尔值 (Bool):存储 truefalse 值,用于表示开关状态或条件。
  • 字符串 (String):存储文本数据,例如 "Hello, World!"
  • URL (URL):存储文件或网络资源的 URL。
  • 日期 (Date):存储日期和时间信息。

要存储这些类型的数据,你需要使用 UserDefaults.standard.set(_:forKey:) 方法。例如,要存储一个整数:

swift
let age = 30
UserDefaults.standard.set(age, forKey: "userAge")

读取基本数据类型

读取存储的数据同样简单!你需要使用与存储类型相对应的 UserDefaults.standard.value(forKey:) 方法。例如,要读取之前存储的整数:

swift
let storedAge = UserDefaults.standard.integer(forKey: "userAge")
print("用户年龄是:\(storedAge)") // 输出:用户年龄是:30

注意,你需要使用正确的类型方法来读取数据。例如,使用 integer(forKey:) 读取整数,string(forKey:) 读取字符串,依此类推。

默认值

当你尝试读取一个不存在的键时,UserDefaults 会返回一个默认值。对于不同的类型,默认值如下:

  • Int: 0
  • Float: 0.0
  • Double: 0.0
  • Bool: false
  • String: nil
  • URL: nil
  • Date: nil

你可以利用这个特性来简化代码,避免不必要的 nil 检查。

示例:存储和读取用户偏好设置

假设你要存储用户的应用主题偏好设置(亮色或暗色)。你可以使用布尔值来表示:

swift
// 存储用户偏好设置
let isDarkModeEnabled = true
UserDefaults.standard.set(isDarkModeEnabled, forKey: "darkModeEnabled")

// 读取用户偏好设置
let darkMode = UserDefaults.standard.bool(forKey: "darkModeEnabled")
if darkMode {
    print("启用暗色模式") // 输出:启用暗色模式
} else {
    print("启用亮色模式")
}

UserDefaults 是一个非常实用的工具,可以帮助你轻松管理应用中的简单数据。记住,它适用于少量数据,对于更复杂的数据存储需求,你应该考虑使用 Core Data 或其他数据库解决方案。🎉

本站使用 VitePress 制作