下圖是在手機設定裡點選釘釘APP後的頁面:
以上,大家肯定再熟悉不過了,那麼它是如何實現的呢?沒錯,就是今天的主角:Settings.Bundle 。
#Settings.Bundle
Settings.Bundle支援六種配置項分別是:Title,MultiValue,Group,Slider,ToggleSwitch,TextField 。
##Title
Type:配置型別,預設是Title
Title:配置項顯示的Title
Identifier: 配置項的識別符號,用來獲取配置項的配置內容
Default Value :配置項預設值
##MultiValue
Type:配置型別,預設Multi Value
Title:配置項顯示的標題
Identifier:配置項識別符號,用來獲取配置項的配置內容
Default:配置項預設值
Titles:顯示的標題陣列
Values:顯示的值陣列,與Titles一一對應
##Group
Type,Title 同上;
##TextField
Text Field Is Secure:是否密文顯示
KeyBoard Type:鍵盤型別
Autocapitalization Stylele:自動大寫
Autocorrection Style:自動糾正拼寫
##ToggleSwitch
##Slider
Minimum Value:最小值
Maximun Value:最大值
Min Value Image Filename:最小值端圖片
Max Value Image Filename:最大值端圖片
#如何設定
1.New File ->Settings.Bundle
在右側的目錄會看到:
在Root.plist裡面新增上面說的配置專案:
配置好後,執行專案,然後在設定中點選app,效果如下:
#程式中獲取配置資訊
獲取配置資訊其實很簡單,直接上程式碼:
//獲取SettingsBundle資訊
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
NSLog(@"%@",[userDefaults objectForKey:@"title_perference"]);
NSLog(@"%@",[userDefaults objectForKey:@"sex_perference"]);
NSLog(@"%@",[userDefaults objectForKey:@"name_preference"]);
NSLog(@"%@",[userDefaults objectForKey:@"enabled_preference"]);
NSLog(@"%@",[userDefaults objectForKey:@"slider_preference"]);
複製程式碼
這裡有一點需要說明:
如果執行應用後直接直接通過上面的程式碼獲取資訊,你會得到null;原因是:
root.plist實際上只是一個靜態檔案用來在設定裡顯示;只有當你對它進行修改,它才會往NSUserDefaults裡新增。修改配置後,NSUserDefaults的優先順序高於root.plist檔案。
#最後
在企業級應用中,後臺訪問地址需要使用者自行配置的時候,SettingsBundle確實很好用。