如何在一天后重置变量?我已经使用了这段代码,但是这段代码会从整个应用程序中删除值,而不是从特定变量中删除。
我们如何在UserDefaults
和UserDefaults
之后的一天内重置特定变量?
extension UserDefaults {
static let defaults = UserDefaults.standard
static var lastAccessDate: Date? {
get {
return defaults.object(forKey: "lastAccessDate") as? Date
}
set {
guard let newValue = newValue else { return }
guard let lastAccessDate = lastAccessDate else {
defaults.set(newValue, forKey: "lastAccessDate")
return
}
if !Calendar.current.isDateInToday(lastAccessDate) {
print("remove Persistent Domain")
UserDefaults.reset()
}
defaults.set(newValue, forKey: "lastAccessDate")
}
}
static func reset() {
defaults.removePersistentDomain(forName: Bundle.main.bundleIdentifier ?? "")
}
}
答案 0 :(得分:1)
您的重置功能会删除与您的应用相关联的所有UserDefault。
要删除特定密钥,请使用以下命令:
UserDefaults.standard.removeObject(forKey: "lastAccessDate")