Могу ли я удалить только один элемент UserDefaults в Swift? - PullRequest
0 голосов
/ 30 ноября 2018

Я использую UserDefault для сохранения словаря

Вот результат, когда я распечатываю свою UserDefault

Optional({
Hamburger =     {
    count = 1;
    subtotal = 70;
};

Cake =     {
    count = 1;
    subtotal = 80;
};

Steak =     {
    count = 1;
    subtotal = 90;
  };

})

Мой вопрос: можно ли удалить только один из ключей, например, Hamburger?

Оставшиеся остальные два элемента

Только не удаляйте все UserDefault,

удаляйте только указанный элемент

Ответы [ 2 ]

0 голосов
/ 30 ноября 2018

Найти это решение:

    // To remove required value from dictionary
    let userDefault = UserDefaults.standard
    if var storedDictionary = userDefault.object(forKey: "StoredDictionary") as? [String: Any] {
        storedDictionary.removeValue(forKey: "Hamburger")
        userDefault.setValue(storedDictionary, forKey: "StoredDictionary")
    }

    // To fetch updated value again wherer you want.
    if let storedDictionary = userDefault.object(forKey: "StoredDictionary") as? [String: Any] {
        print("StoredDictionary: ", storedDictionary)
    }
0 голосов
/ 30 ноября 2018

Вы можете получить свой словарь из UserDefaults, затем вы можете удалить ключ / объект, который вы хотите.И затем вы можете снова сохранить объект обновления в UserDefault.

       let kUserDefault = UserDefaults.standard

       let object = kUserDefault.object(forKey: "StoredValue") as! NSDictionary
        let storedValue = NSMutableDictionary.init(dictionary:object)
        storedValue.removeObject(forKey: "Hamburger")
        print(storedValue)

        kUserDefault.set(storedValue, forKey: "StoredValue")
        kUserDefault.synchronize()

        let newObject : NSMutableDictionary = kUserDefault.object(forKey: "StoredValue") as! NSMutableDictionary
        print(newObject)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...