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
刪除響應的項
很多方法,可以參見幫助文件。不在贅述了。
只要寫一下我對該類的理解。並對我瞭解的方法一個備份