📅  最后修改于: 2023-12-03 14:53:13.775000             🧑  作者: Mango
UserDefaults
中UserDefaults
是 iOS 中的一种轻量级数据持久化保存方式,可以用来保存小型数据,例如用户偏好设置、应用程序状态等。本文将介绍如何确保数据保存在 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.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
中删除某个特定的键值对,可以使用 removeObject(forKey:)
方法。以下是删除数据从 UserDefaults
中的示例代码:
UserDefaults.standard.removeObject(forKey: "myIntegerKey")
本文介绍了如何确保数据保存在 UserDefaults
中。通过保存、读取、同步和删除数据,我们可以在应用程序中方便地管理用户偏好设置等小型数据。
更多关于 UserDefaults
的操作和功能,请参考官方文档。