Как я могу ограничить количество словарей в NSUserDefaults, хранящихся на основе userID в iOS

У меня есть словарь, имеющий следующие детали:

     {
            Name = "John";
            Picture =         (
                ""
            );
            Rating = 4;
        },
     {
            Name = "Peter";
            Picture =         (
                ""
            );
            Rating = 3;
        },

Я храню их dictionariesвнутри NSUserDefaults. Я хочу, чтобы пользователь, имеющий userIDFED123RED123, мог хранить только два такихdictionaries, NSUSerDefaultsа другой пользователь, имеющий разныеuserID, может хранить свои два разных значения NSUSerDefaults. Короче говоря, как я могу ограничить количество dictionariesNSUserDefaultsхранимых на основе userID.

2 ответа

  1. Аранжируйте структуру что-то вроде этого:

    "FED123RED123" : [
                        {
                            Name = "John";
                            Picture =         (
                                ""
                            );
                            Rating = 4;
                        },
                        {
                            Name = "Peter";
                            Picture =         (
                                ""
                            );
                            Rating = 3;
                        }
                ]
    

    И проверить, если количество массивов, хранящихся для конкретного идентификатора пользователя меньше 2, то разрешить добавлять словари.

  2. Можно создать переменную типа Dictionary:

    var dictionary_to_save: [[String:AnyObject]]!

    Теперь вы можете сохранить userDefaultsсловарь to above и проверить количество тех же словарей, что и выше

    var dictionary_to_save: [String:AnyObject]]?
    
    func saving_to_defaults(){
            let defaults = NSUserDefaults.standardUserDefaults()
            let defaultsValue = defaults.objectForKey(object_name, forkey:"key_name")
            self.dictionary_to_save = defaultsValue
            if dictionary_to_save.count >= 2{
                // do nothing or, count is already two, so delete dictionaries added before as
    
                self.dictionary_to_save.removelast()
    
            }else{
    
            }
            //save object using userDefault here
            defaults.setObject(object_name, forKey: "key_name")
        }