Как удалить список свойств NSCoder, хранящийся в памяти телефона iOS - PullRequest
0 голосов
/ 05 марта 2020

Как удалить закодированный список свойств, сохраненный в пути к файлу. Я сохранил пользовательскую информацию в виде закодированного списка свойств в пути к файлу.

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

Когда пользователь выходит из приложения, список свойств должен быть очищено или удалено

1 Ответ

0 голосов
/ 05 марта 2020

Я надеюсь, что это поможет вам сохранить данные в 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)
}
...