如何在 Swift 应用中保存本地数据?

swiftserver side programmingprogramming更新于 2025/7/11 6:37:17

在 Swift 中,有多种方法可以在应用中保存本地数据,具体取决于您要保存的数据类型和大小。您可以使用用户默认值、属性列表序列化、Core Data 等。本文将通过一些示例了解用户默认值。

用户默认值

在 iOS、macOS 和 watchOS 中,一种称为 UserDefaults 的基本存储机制使应用能够存储相对少量的数据,包括用户偏好设置。您可以为所使用的键值对系统中的特定键分配一个值。然后,可以使用该键作为引用来获取该值。

简单数据类型(例如文本、布尔值、整数和日期)通常存储在用户默认值中。它使用简单,无需其他框架或库。

以下是 UserDefaults 的一些主要特点

  • 数据持久性 − 即使应用关闭或设备重启,UserDefaults 数据仍然可以访问。

  • 简单的 API − 易于使用,按键设置和获取值非常简单。

  • 快速 − UserDefaults 非常适合处理少量数据,因为它专为快速读写而构建。

  • 安全性 − UserDefaults 数据安全地保存在应用的沙盒中,这意味着只有生成它的程序才能访问它。

以下是 Swift 中更多 UserDefaults 使用示例−

示例 1:保存和检索布尔值

import Foundation
// 为键"isDarkModeEnabled"设置布尔值
let defaults = UserDefaults.standard
defaults.set(true, forKey: "isDarkModeEnabled")

// 检索键"isDarkModeEnabled"的布尔值
let isDarkModeEnabled = defaults.bool(forKey: "isDarkModeEnabled")
print(isDarkModeEnabled)

输出

true

此示例演示如何使用 set 方法和键"isDarkModeEnabled"将布尔值保存到 UserDefaults。然后,它使用 bool 方法和相同的键检索布尔值。最后,打印出检索到的布尔值。

示例 2:保存和检索字符串数组

import Foundation
// 为键"myArray"设置一个字符串数组
let defaults = UserDefaults.standard
defaults.set(["Apple", "Banana", "Orange"], forKey: "myArray")

// 为键"myArray"检索字符串数组
let myArray = defaults.array(forKey: "myArray") as? [String] ?? []
print(myArray)

输出

["Apple", "Banana", "Orange"]

此示例演示如何使用 set 方法和键"myArray"将字符串数组保存到 UserDefaults。然后,它使用 array 方法和相同的键检索该数组,并将其转换为字符串数组。如果转换由于某种原因失败,它将默认为空数组。最后,它打印出检索到的数组。

Example 3: Saving and Retrieving an Integer

import Foundation
// 为键"myInt"设置一个整数值
let defaults = UserDefaults.standard
defaults.set(42, forKey: "myInt")

// 检索键"myInt"的整数值
let myInt = defaults.integer(forKey: "myInt")
print(myInt)

输出

42

此示例演示如何使用 set 方法和键"myInt"将整数值保存到 UserDefaults。然后,它使用整数方法和相同的键检索该整数值。最后,打印出检索到的整数值。

示例 4:保存和检索字典

import Foundation
// 为键"myDictionary"设置字典
let defaults = UserDefaults.standard
defaults.set(["name": "John", "age": 30], forKey: "myDictionary")

// 检索键"myDictionary"的字典
let myDictionary = defaults.dictionary(forKey: "myDictionary") as? [String: Any] ?? [:]
print(myDictionary)

输出

["name": John, "age": 30]

此示例展示了如何使用 set 方法和键"myDictionary"将字典保存到 UserDefaults。然后,它使用 dictionary 方法和相同的键检索该字典,并将其转换为包含 String 键和 Any 值的字典。如果转换由于某种原因失败,它将默认为一个空字典。最后,它打印出检索到的字典。

结论

总而言之,UserDefaults 是 iOS、macOS 和 watchOS 中的基本存储机制。它使应用能够存储少量信息,例如用户偏好设置。它使用键值对系统,将值分配给特定的键,然后使用该键获取值。

UserDefaults 是存储基本数据类型的绝佳工具,因为它使用简单,不需要其他库或框架。它不适用于处理大数据集或更复杂的数据类型,因此在某些情况下,您可能需要使用 Core Data、SQLite 数据库或属性列表作为替代存储方法。



相关文章



关于我们 | 隐私条款 | 学习路线
返回顶部