swift - 如何快速删除 UserDefaults 数据?
问题描述
userdaeults 不会删除内存中的数据,尽管我确实删除了它。钥匙串进行删除。我分享下面的代码。它在退出时调用handlelogout 函数。录音很好,但是当我退出时,它并没有删除我保存的数据。
@objc func deleteee(){
do {
try keychain.remove("chipnumbernew")
} catch let error {
print("error: \(error)")
}
}
@objc func deleteeetimer(){
UserDefaults.standard.removeObject(forKey: "timertext")
UserDefaults.standard.removeObject(forKey: "timertext2")
UserDefaults.standard.synchronize()
}
@objc func handleLogout(){
do {
deleteee()
deleteeetimer()
try Auth.auth().signOut()
let mainTableVC = LoginViewController()
let navController = UINavigationController(rootViewController: mainTableVC)
self.present(navController, animated: true, completion: {
//
})
} catch let signOutError as NSError {
print ("Giriş Yapılamadı: %@", signOutError)
}
}
override func viewDidLoad() {
super.viewDidLoad()
let token = try? keychain.getString("chipnumbernew")
chip1InfoString = token
if let strtimer = UserDefaults.standard.string(forKey: "timertext") {
print("strtimer", strtimer)
timertextNew.text = strtimer
}
if let strtimer2 = UserDefaults.standard.string(forKey: "timertext2") {
print("strtimer2", strtimer2)
timertext2New.text = strtimer2
} }
解决方案
本身将清除值removeObject
。UserDefaults
您可以直接在 plist 中进行验证。请参阅此帖子以访问 plist。
不过,你想清理,你可以试试下面的代码。
if let appDomain = Bundle.main.bundleIdentifier {
UserDefaults.standard.removePersistentDomain(forName: appDomain)
}
推荐阅读
- git - 通过 PR 将远程分支恢复到特定的提交
- r - 仅在编织 R Markdown 时未找到“idx”
- react-native - React 本机导入库我没有使用,然后崩溃
- javascript - 如何在Vue中将数组显示为道具
- apache - 重写apache规则
- laravel-8 - cURL 错误 60:SSL 证书问题:创建 laravel 包时无法获取本地颁发者证书
- javascript - smartsupp 上的单击侦听器
- google-apps-script - 谷歌脚本,临时表
- reactjs - 将请求分派到 react/redux 应用程序中的套接字的最佳方法是什么?
- html - 更改页脚代码以便我可以同时清理和换行我们的商店地址?