2016-12-28 28 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") 
    }