1342787234_4932

用戶首選項是用來保存和記錄用戶在操作應用的過程做做出的一些選擇或設置。類似Android開發中的SharedPreference,可以存儲一些數據,但基本都是簡單類型的數據,主要作用都是存儲一些用戶設置數據,比如是否是首次登陆,就可以設置一個布爾類型的變量,設值为true或false。

 

NSUserDefaults的幾個重要方法:

standardUserDefaults:創建共享默認設置對象的類方法(Java中的靜態方法,單例)

objectForKey:返回鍵對象的實例方法

setObject: forKey:以指定的鍵設置值的實例方法

 

基本用法:

新建一個工程,然後在ViewController.m中添加如下代碼

- (void)viewDidLoad

{

    [superviewDidLoad];

    NSUserDefaults *myDefaults = [NSUserDefaultsstandardUserDefaults];

    [myDefaults setObject:@"Hello"forKey:@"defaultKey"];

    

    NSLog(@"The value is %@",[myDefaults objectForKey:@"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,這样就建立了一個設置首選項的默認形式,運行後到模擬器的設置中可以看到如下界面:

1342787167_3724  

 

打開Settings.bundle文件

1342787196_7752  

 

可以看到有個Root.plist文件,裏面存儲的內容都是以鍵值對的形式存儲的。這裏的Item就對應了設置界面中顯示的一些選項,Item0的類型是Group,對應的是一個分組表格類型,然後下面的Item都在這個分組表格中,直到遇到下一個Group。Text Field是輸入文本框,下面的identifier是key,在代碼中可以通過NSUserDefaults的objectForKey:來訪問這個key對應的value。顯示類型可供選擇的還有開關、滑動條、子設置項等。使用中可以具體查看。

 

這是我做的另一個Demo,裏面包含了更多可顯示的類型

1342787234_4932  

 

然後回到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];

 

這样就把設置中的信息讀出來顯示到界面上了:

1342787216_8124  

 

以上就是兩種用戶首選項的使用方法,一種是自定義首選項,一種是使用系統設置的方式。兩種都很方便,在項目中用到的地方也比較多。

 

以上還有不足的地方,希望大家補充,希望和我交流的同學可以關注我的新浪微博:唐韌_Ryan



From:CSDN

創作者介紹
創作者 shadow 的頭像
shadow

資訊園

shadow 發表在 痞客邦 留言(0) 人氣()