【问题标题】:How to delete NSCoder Property list stored in phone memory iOS如何删除存储在手机内存iOS中的NSCoder属性列表
【发布时间】:2020-03-05 09:11:20
【问题描述】:

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

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 是我的 Codable 模型

当用户退出应用程序时,需要清除或删除属性列表

【问题讨论】:

    标签: ios swift nsuserdefaults codable nscoder


    【解决方案1】:

    我希望这对您在 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
        }
    }
    

    以上扩展用于将 Codable 模型存储和获取到 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)
    }
    

    【讨论】:

    • 我不想将数据存储在用户默认值中。需要单独的 .plist 文件。否则加载时间会更长
    • 是的,我知道了,但 UserDefault 是存储在 xml 结构化文件 (.plist) 中的键值对。它存储在 App Bundle 中。
    猜你喜欢
    • 2013-01-15
    • 2011-08-26
    • 1970-01-01
    • 1970-01-01
    • 2011-01-17
    • 2019-10-08
    • 2015-10-15
    • 2016-06-11
    • 2013-11-28
    相关资源
    最近更新 更多