📜  如何确保数据保存在 userdefault 中 (1)

📅  最后修改于: 2023-12-03 14:53:13.775000             🧑  作者: Mango

如何确保数据保存在 UserDefaults

简介

UserDefaults 是 iOS 中的一种轻量级数据持久化保存方式,可以用来保存小型数据,例如用户偏好设置、应用程序状态等。本文将介绍如何确保数据保存在 UserDefaults 中,并提供一些常用的操作示例。

保存数据到 UserDefaults

使用 UserDefaults.standard 实例保存数据到 UserDefaults 中,可以保存多种基本类型的数据,例如整型、浮点型、布尔型等。以下是保存数据到 UserDefaults 中的示例代码:

// 保存整型数据
UserDefaults.standard.set(10, forKey: "myIntegerKey")

// 保存浮点型数据
UserDefaults.standard.set(3.14, forKey: "myFloatKey")

// 保存布尔型数据
UserDefaults.standard.set(true, forKey: "myBoolKey")

// 保存字符串数据
UserDefaults.standard.set("Hello UserDefaults", forKey: "myStringKey")

// 保存自定义对象
let myObject = MyObject()
let encodedData = try? NSKeyedArchiver.archivedData(withRootObject: myObject, requiringSecureCoding: false)
UserDefaults.standard.set(encodedData, forKey: "myObjectKey")
读取数据从 UserDefaults

使用 UserDefaults.standard 实例读取数据从 UserDefaults 中,可以使用 object(forKey:) 方法获取包括自定义对象在内的多种基本类型的数据。以下是从 UserDefaults 中读取数据的示例代码:

// 读取整型数据
let myInteger = UserDefaults.standard.integer(forKey: "myIntegerKey")

// 读取浮点型数据
let myFloat = UserDefaults.standard.float(forKey: "myFloatKey")

// 读取布尔型数据
let myBool = UserDefaults.standard.bool(forKey: "myBoolKey")

// 读取字符串数据
let myString = UserDefaults.standard.string(forKey: "myStringKey")

// 读取自定义对象数据
if let data = UserDefaults.standard.object(forKey: "myObjectKey") as? Data {
    let myObject = try? NSKeyedUnarchiver.unarchiveTopLevelObjectWithData(data) as? MyObject
}
同步数据到磁盘

当对 UserDefaults 进行更改时,更改是先保存在内存中的,并且会自动定期将更改写入磁盘。但在某些情况下,我们可能需要立即将更改的数据写入磁盘,可以调用 synchronize() 方法手动同步数据。以下是手动同步数据到磁盘的示例代码:

UserDefaults.standard.synchronize()
删除数据从 UserDefaults

如果想要从 UserDefaults 中删除某个特定的键值对,可以使用 removeObject(forKey:) 方法。以下是删除数据从 UserDefaults 中的示例代码:

UserDefaults.standard.removeObject(forKey: "myIntegerKey")
总结

本文介绍了如何确保数据保存在 UserDefaults 中。通过保存、读取、同步和删除数据,我们可以在应用程序中方便地管理用户偏好设置等小型数据。

更多关于 UserDefaults 的操作和功能,请参考官方文档