Swift 如何删除UserDefaults数据?
userdaeults不会删除内存中的数据,尽管我会删除它。Keychain执行删除操作。我分享下面的代码。退出时调用handlelogout函数。录音很好,但当我退出时,它不会删除我保存的数据Swift 如何删除UserDefaults数据?,swift,nsuserdefaults,keychain,Swift,Nsuserdefaults,Keychain,userdaeults不会删除内存中的数据,尽管我会删除它。Keychain执行删除操作。我分享下面的代码。退出时调用handlelogout函数。录音很好,但当我退出时,它不会删除我保存的数据 @objc func deleteee(){ do { try keychain.remove("chipnumbernew") } catch let error { print("error: \(error)")
@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
} }
UserDefaults
中的removeObject
本身将清除该值。您可以直接在plist中验证这一点。访问plist请参阅帖子
不过,如果您想清理,可以尝试下面的代码
if let appDomain = Bundle.main.bundleIdentifier {
UserDefaults.standard.removePersistentDomain(forName: appDomain)
}
它还在记忆中,不起作用。