ios中NSUserDefaults的用法
ios中NSUserDefaults的用法
NSUserDefaults類提供了一個與預設系統進行互動的編程介面。NSUserDefaults對象是用來儲存,恢複應用程式相關的喜好設定,配置資料等等。預設系統允許應用程式自訂它的行為去迎合使用者的喜好。你可以在程式啟動並執行時候從使用者預設的資料庫中讀取程式的設定。同時NSUserDefaults的緩衝避免了在每次讀取資料時候都開啟使用者預設資料庫的操作。可以通過調用synchronize方法來使記憶體中的緩衝與使用者預設系統進行同步。
NSUserDefaults類提供了非常方便的方法來擷取常用的類型,例如floats,doubles,intergers,Booleans,URLs。所以一個NSUserDefaults的對象必須是屬性工作表,這也就是說我們可以儲存NSData,NSString,NSNUmber,NSDate,NSArray,NSDictionary這些執行個體。如果你想儲存其他類型的對象,你要將其歸檔並建立一個NSData來實現儲存。
從NSUserDefaults返回的值是不可改變的,即便是你在儲存的時候使用的是可變的值。例如你使用mutable string做為“MyStringDefault”的值,當你做使用stringForKey:方法擷取的值,這個值仍然是不可變的。
NSUserDefaults是單例,同時也是安全執行緒的
在使用NSUserDefaults的時候,
先看下下面的代碼
NSDictionary* defaults = [[NSUserDefaults standardUserDefaults] dictionaryRepresentation];
NSLog(@Defaults: %@, defaults);
是用來擷取裝置上的所有的NSUserDefaults的設定。
NSUserDefaults適合儲存輕量級的本機資料,比如要儲存一個登陸介面的資料,使用者名稱、密碼之類的,個人覺得使用NSUserDefaults是首選。下次再登陸的時候就可以直接從NSUserDefaults裡面讀取上次登陸的資訊咯。
因為如果使用自己建立的plist檔案什麼的,還得自己顯示建立檔案,讀取檔案,很麻煩,而是用NSUserDefaults則不用管這些東西,就像讀字串一樣,直接讀取就可以了。NSUserDefaults很方便,讀取也很容易。
建立一個user defaults方法有多個,最簡單得快速建立方法:
[plain]
- NSUserDefaults *accountDefaults = [NSUserDefaults standardUserDefaults];
添加資料到 user defaults:
[plain]
- [accountDefaults setObject:nameField.text forKey:UserDefaultNameKey];
也可以添加基礎資料型別 (Elementary Data Type)int, float, bool等,有相應得方法
[plain]
- [accountDefaults setBool:YES forKey:UserDefaultBoolKey];
從user defaults中擷取資料:
[plain]
- [accountDefaults objectForKey:NCUserDefaultNameKey] [accountDefaults boolForKey: UserDefaultBoolKey];
要點:
NSUserDefaults非常好用,並不需要使用者在程式中設定NSUserDefaults的全域變數,需要在哪裡使用NSUserDefaults的資料,那麼就在哪裡建立一個NSUserDefaults對象,然後進行讀或者寫操作。
針對同一個關鍵字對應的對象或者資料,可以對它進行重寫,重寫之後關鍵字就對應新的對象或者資料,舊的對象或者資料會被自動清理。