如何删除存储在手机内存iOS中的NSCoder属性列表



如何删除存储在文件路径中的编码属性列表。我已将用户信息作为编码属性列表存储在文件路径中。

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)
}

最新更新