如何从 Swift 中的 UserDefaults 中按套件名称删除所有数据?

Saz*_*han 3 iphone nsuserdefaults local-storage ios swift

我已经创建了用户默认值,名称如下,

let prefs1 = UserDefaults.init(suiteName: "UserAccount")
let prefs2 = UserDefaults.init(suiteName: "UserInfo")
Run Code Online (Sandbox Code Playgroud)

然后我为这些套件添加了一些值。IE

prefs1.set(true, forKey: "Key1")
prefs1.set(true, forKey: "Key2")

prefs2.set(false, forKey: "Key1")
prefs2.set(false, forKey: "Key2")
Run Code Online (Sandbox Code Playgroud)

现在,我想删除prefs1(即名称“UserAccount”),但不是prefs2。我试过,

UserDefaults.standard.removePersistentDomain(forName: "UserAccount")
Run Code Online (Sandbox Code Playgroud)

但它没有删除。我很困惑,forName并且suiteName

如何UserDefaults在 Swift 中删除一个套件以保持其他套件完好无损?

Mic*_*sky 6

func removePersistentDomain(forName domainName: String)

https://developer.apple.com/documentation/foundation/userdefaults/1417339-removepersistentdomain

调用此方法相当于使用 init(suiteName:) 传递domainName 来初始化用户默认对象,并在其每个键上调用removeObject(forKey:) 方法。