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的設定。
上面程式碼輸出了
Defaults:
{
AppleITunesStoreItemKinds
= (
eBook,
document,
"software-update" ,
booklet,
"itunes-u" ,
newsstand,
artist,
podcast,
"podcast-episode" ,
software
);
AppleKeyboards
= (
"[email protected]=Pinyin;hw=US" ,
"[email protected]=US;sw=QWERTY"
);
AppleKeyboardsExpanded
= 1;
AppleLanguages
= (
"zh-Hans" ,
en,
fr,
de,
ja,
nl,
it,
es,
pt,
"pt-PT" ,
da,
fi,
nb,
sv,
ko,
"zh-Hant" ,
ru,
pl,
tr,
uk,
ar,
hr,
cs,
el,
|