NSUserDefaults的幾個重要方法: 框架
standardUserDefaults:建立共享默認設置對象的類方法(Java中的靜態方法,單例) iphone
objectForKey:返回鍵對象的實例方法 ide
setObject: forKey:以指定的鍵設置值的實例方法 spa
基本用法: code
新建一個工程,而後在ViewController.m中添加以下代碼 orm
- (void)viewDidLoad 對象
{ ip
[superviewDidLoad]; 開發
NSUserDefaults *myDefaults = [NSUserDefaultsstandardUserDefaults]; string
[myDefaultssetObject:@"Hello"forKey:@"defaultKey"];
NSLog(@"The value is %@",[myDefaultsobjectForKey:@"defaultKey"]);
}
編譯運行結果以下:
NSUserDefaultsTest[3007:f803] The value is Hello
這樣咱們實現了NSUserDefaults的基本使用,NSUserDefaults有一個基本特色就是,數據是保存在程序全局中的,因此當退出程序後下次再進來時,數據仍是存在的,這樣就起到了保存用戶操做數據的功能。
上面是實現了我的首選項的使用,下面咱們再來看看系統設置的使用。
首先來熟悉一下bundle
bundle的意思是應用程序束的意思,在IOS開發中,存在三種類型的bundle,分別是框架bundle、應用程序bundle和設置bundle。另外還有一種解釋就是Xcode讓您可以將多個文件組合成有機的總體,這就叫bundle。實際上,bundle就是一個目錄,或者叫包。bundle的有點在於它能不露痕跡的存儲文件的多個版本,並在特定的條件下使用正確的版本。咱們日常接觸比較多的就是應用程序bundle,當編譯運行程序在iphone或ipad上時,就建立了應用程序bundle。
首先新建一個文件,新建時選擇Resources,而後選擇settings.bundle,這樣就創建了一個設置首選項的默認形式,運行後到模擬器的設置中能夠看到以下界面:
打開Settings.bundle文件
能夠看到有個Root.plist文件,裏面存儲的內容都是以鍵值對的形式存儲的。這裏的Item就對應了設置界面中顯示的一些選項,Item0的類型是Group,對應的是一個分組表格類型,而後下面的Item都在這個分組表格中,直到遇到下一個Group。Text Field是輸入文本框,下面的identifier是key,在代碼中能夠經過NSUserDefaults的objectForKey:來訪問這個key對應的value。顯示類型可供選擇的還有開關、滑動條、子設置項等。使用中能夠具體查看。
這是我作的另外一個Demo,裏面包含了更多可顯示的類型
而後回到ViewController.m文件中,在viewDidLoad中添加以下代碼:
//程序設置首選項
self.nameLabel.text = [[NSUserDefaultsstandardUserDefaults] stringForKey:@"name_preference"];
BOOL isSwitch = [[NSUserDefaultsstandardUserDefaults] boolForKey:@"enabled_preference"];
//輸出BOOL值的方式
self.switchLabel.text = [NSStringstringWithFormat:@"%@",isSwitch ?@"YES":@"NO"];
float sliderValue = [[NSUserDefaultsstandardUserDefaults] floatForKey:@"slider_preference"];
self.sliderLabel.text = [NSStringstringWithFormat:@"%f",sliderValue];
這樣就把設置中的信息讀出來顯示到界面上了:
以上就是兩種用戶首選項的使用方法,一種是自定義首選項,一種是使用系統設置的方式。兩種都很方便,在項目中用到的地方也比較多。
以上還有不足的地方,但願你們補充,但願和我交流的同窗能夠關注個人新浪微博:唐韌_Ryan