一天后如何重置变量?我使用了此代码,但是此代码从整个应用程序中删除了值,而不是从特定变量中删除了这些值。
在使用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 ?? "")
    }
}

最佳答案

您的重置功能将删除与您的应用相关联的所有UserDefaults。

要删除特定的密钥,请使用以下命令:

UserDefaults.standard.removeObject(forKey: "lastAccessDate")

关于ios - 如何在1天后 swift 重置特定变量值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49303434/

10-13 04:03