如何在swift中重置1天后重置特定变量值

时间:2018-03-15 15:30:57

标签: ios swift nsuserdefaults

如何在一天后重置变量?我已经使用了这段代码,但是这段代码会从整个应用程序中删除值,而不是从特定变量中删除。 我们如何在UserDefaultsUserDefaults之后的一天内重置特定变量?

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 ?? "")
    }
}

1 个答案:

答案 0 :(得分:1)

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

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

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