1. 程式人生 > >NSUserDefaults詳細解釋

NSUserDefaults詳細解釋

NSUserDefaults是一個

它的方便之處在於不用申明太多的變數來儲存不同的資料,一個NSUserDefaults就搞定了。

它是應用程式域的,能讓我們進行更加方便的使用!使用真心的方便啊!

NSUserDefaults是什麼呢?

NSUserDefaults類提供了與預設資料庫(可以看成是一種特殊的資料庫)相互動的程式設計介面。

做一個比喻:如果將預設資料庫比喻為SQL Server資料庫,那麼NSUserDefaults就相當於SQL語句。

就像我們通過SQL語句可以對SQL Server資料庫進行增刪改查操作一樣。我們可以通過NSUserDefaults對預設系統操作。

那就先來討論一下它的特點吧:

預設資料庫,擁有應用程式域中,所以,我們可以在程式的任何地方呼叫該“預設系統”中的資料。

預設資料庫,主要儲存應用程式中需要的一些偏好設定值。所以可以推斷,儲存的容量不會很大。

在程式執行的時候,NSUserDefaults建立和修改的資料,首先儲存在記憶體中,並自動定時進行儲存到預設資料庫中。

NSUserDefaults對每一種資料都有響應的存取方法。如果要儲存的資料,沒有響應的方法,那麼必須將要儲存的資料歸檔(轉化成響應的資料型別),然後儲存。

比如:你想儲存其他型別,如UIImage,你應該進行歸檔(即archive),或者將它轉換為NSUserDefaults 支援的儲存型別。

NSUserDefaults定義了很多方法來對預設資料庫進行操作。

以下列舉了一些常用的:

+ (NSUserDefaults *)standardUserDefaults

建立一個NSUserDefaults例項。後,如果 預設資料庫 沒有建立,那麼,預設資料庫將被按照以下順序被建立。

NSArgumentDomain(應用程式域,應用範圍在該應用程式中)

NSGlobalDomain(全域性域,所有應用程式都將公用該域)

NSRegistrationDomain(臨時域,為了確保建立成功)

(當然,取值的時候,也應該是這樣的順序吧,這樣才能保證不同應用程式中的資料不被衝突)

————————————————————————————————————————————

+ (void)resetStandardUserDefaults

將記憶體中進行的修改,同步到預設資料庫中。

————————————————————————————————————————————

- (id)init

初始化一個預設的NSUserDefaults

————————————————————————————————————————————

- (id)initWithUser:(NSString *)username

初始化一個特定使用者的NSUserDefaults,如果該使用者不存在,則返回nil

————————————————————————————————————————————

相應的Get方法(就不用多解釋了)

  • – arrayForKey:
  • – boolForKey:
  • – dataForKey:
  • – dictionaryForKey:
  • – floatForKey:
  • – integerForKey:
  • – objectForKey:
  • – stringArrayForKey:
  • – stringForKey:
  • – doubleForKey:
  • – URLForKey:

————————————————————————————————————————————

響應的Setting方法:

  • – setBool:forKey:
  • – setFloat:forKey:
  • – setInteger:forKey:
  • – setObject:forKey:
  • – setDouble:forKey:
  • – setURL:forKey:

————————————————————————————————————————————

- (void)removeObjectForKey:(NString *)defaultName

刪除響應的項

很多方法,可以參見幫助文件。不在贅述了。

只要寫一下我對該類的理解。並對我瞭解的方法一個備份