NSUserDefaults
是 iOS 和 macOS 平台上用于存储轻量级用户偏好的数据的一种机制。它允许应用程序保存和检索简单的键值对数据,如字符串、数字、日期等。NSUserDefaults
适合存储不需要加密且不需要频繁更新的数据。
NSUserDefaults
提供了简单的 API 来存储和检索数据。NSUserDefaults
数据。NSUserDefaults
可以存储以下类型的数据:
String
)Int
, Float
, Double
)Bool
)Date
)URL
)Data
)以下是一个使用 NSUserDefaults
在 Swift 中存储和检索数据的示例:
import Foundation
// 存储数据
let defaults = UserDefaults.standard
defaults.set("John Doe", forKey: "userName")
defaults.set(25, forKey: "userAge")
defaults.set(true, forKey: "isLoggedIn")
// 同步数据
defaults.synchronize()
// 检索数据
if let name = defaults.string(forKey: "userName") {
print("User Name: \(name)")
}
if let age = defaults.integer(forKey: "userAge") {
print("User Age: \(age)")
}
if let loggedIn = defaults.bool(forKey: "isLoggedIn") {
print("Logged In: \(loggedIn)")
}
UserDefaults
数据没有保存?原因:
synchronize()
方法(虽然在新版本中不是必须的)。解决方法:
synchronize()
方法(尽管在新版本中 UserDefaults
会自动同步)。UserDefaults
中的数据?解决方法:
可以使用 removeObject(forKey:)
方法删除特定键的数据,或者使用 removePersistentDomain(forName:)
方法删除整个域的数据。
// 删除特定键的数据
defaults.removeObject(forKey: "userName")
// 删除整个域的数据
defaults.removePersistentDomain(forName: Bundle.main.bundleIdentifier!)
通过以上信息,你应该能够更好地理解和使用 NSUserDefaults
在 Swift 中实现信号信令或其他数据存储需求。
领取专属 10元无门槛券
手把手带您无忧上云