2016-12-28 8 views
0

У меня есть словарь, имеющий следующие детали:Как я могу ограничить количество словарей в NSUserDefaults, хранящемся на базе в прошивке идентификатора пользователя

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

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

+0

положить их в массиве и ограничить массив только двумя значениями. –

+1

Не сохраняйте данные такого типа в настройках пользователя по умолчанию. – Paulw11

+0

Как и @ Paulw11, NSUserDefaults не предназначен для хранения каких-либо дополнительных настроек. Вместо этого используйте базу данных или, по крайней мере, плоский файл. Таким образом, у вас есть полный контроль над тем, как данные организованы и хранятся. – AppreciateIt

ответ

0

организовать структуру что-то вроде этого:

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

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

0

Вы можете создать переменную типа Dictionary:

var dictionary_to_save: [[String:AnyObject]]!

Теперь вы можете сохранить userDefaults к выше словаря и проверить количество одного и того же словаря, как описано выше

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