如何删除存储在文件路径中的编码属性列表。我已将用户信息作为编码属性列表存储在文件路径中。
let loggedDetailsFilePath = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first?.appendingPathComponent(SessionKeys.loggedDetails)
func saveLoggedDetails(data: LoginModel) {
do{
let data = try encoder.encode(data)
try data.write(to: loggedDetailsFilePath!)
}catch{
print("error encoding the item (error)")
}
}
LoginModel是我的可编码模型
当用户从应用程序注销时,需要清除或删除属性列表
我希望这将适用于将数据存储在UserDefaults中
extension UserDefaults {
func save<T: Codable>(_ object: T, forKey key: String) {
let encoder = JSONEncoder()
if let encodedObject = try? encoder.encode(object) {
UserDefaults.standard.set(encodedObject, forKey: key)
UserDefaults.standard.synchronize()
}
}
func getObject<T: Codable>(forKey key: String) -> T? {
if let object = UserDefaults.standard.object(forKey: key) as? Data {
let decoder = JSONDecoder()
if let decodedObject = try? decoder.decode(T.self, from: object) {
return decodedObject
}
}
return nil
}
}
以上扩展适用于商店&将可编码模型提取到UserDefaults
以下是存储任何可编码模型的函数:-
func setCoableInUser<T: Codable>(_ object:T, key: String)-> Void{
UserDefaults.standard.save(object, forKey: key)
}
根据上面的功能,你可以很容易地从UserDefaults 中删除数据
func removeObjectFromDefault(_ key: String)
{
UserDefaults.standard.removeObject(forKey: key)
}