How to remove all data by a suite name from UserDefaults in Swift?

前端 未结 3 904
陌清茗
陌清茗 2021-01-24 04:45

I have created user defaults with names below,

let prefs1 = UserDefaults.init(suiteName: \"UserAccount\")
let prefs2 = UserDefaults.init(suiteName: \"UserInfo\")         


        
3条回答
  •  甜味超标
    2021-01-24 05:25

    You can try

    UserDefaults.standard.removeSuite(named: "UserAccount")
    

    If you want to just remove the keys. You can go for following

    func removeAllFor(defaults: UserDefaults) {
            let dictionary = defaults.dictionaryRepresentation()
            dictionary.keys.forEach { key in
                defaults.removeObject(forKey: key)
            }
        }
    

    Then you can call it on default that you want to clear data for

    removeAllFor(defaults: prefs1)
    

    removeSuite(named:) : Removes a sub-searchlist added via -addSuiteNamed method

    removePersistentDomain(forName: ) : Removes all values from the search list entry specified by ‘domainName’.

提交回复
热议问题