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]
添加數據到 user defaults:
[plain]
也可以添加基本數據類型int, float, bool等,有相應得方法
[plain]
從user defaults中獲取數據:
[plain]
要點:
NSUserDefaults非常好用,並不需要用戶在程序中設置NSUserDefaults的全局變量,需要在哪裡使用NSUserDefaults的數據,那麼就在哪裡創建一個NSUserDefaults對象,然後進行讀或者寫操作。
針對同一個關鍵字對應的對象或者數據,可以對它進行重寫,重寫之後關鍵字就對應新的對象或者數據,舊的對象或者數據會被自動清理。