2016-12-28 23 views
0

的NSUserDefaults的数量我有以下细节的字典:如何限制字典中存储的用户ID的基础上,在iOS版

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

我存储NSUserDefaults这些dictionaries。我希望具有userID FED123RED123的用户只能在NSUSerDefaults中存储两个这样的dictionaries,而具有不同userID的其他用户可以在NSUSerDefaults中存储他的两个不同值。简而言之,我怎样才能限制存储在userID基础上的dictionariesNSUserDefaults的数量。

+0

把它们在数组中并将数组限制为只有2个值。 –

+1

不要以用户默认值存储这类数据。 – Paulw11

+0

像@ Paulw11所说的,NSUserDefaults不是用来存储超出基本设置的任何东西。请使用数据库,或至少使用平面文件。这样,您就可以完全控制数据的组织和存储方式。 – AppreciateIt

回答

0

安排结构是这样的:

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

,并检查是否存储特定用户ID阵列的计数小于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") 
    }