1. 程式人生 > >[Xcode10 實際操作]九、實用進階-(8)實現App的Setting設置:添加和讀取程序的配置信息

[Xcode10 實際操作]九、實用進階-(8)實現App的Setting設置:添加和讀取程序的配置信息

ren dtd www user capital 配置 演示 應用 default

本文將演示如何實現添加和讀取程序的配置信息。

在項目文件夾【DemoApp】上點擊鼠標右鍵->【New File】創建一個設置束文件

->【Settings Bundle】設置束:

如果想要通過設備的【設置】程序,來展示自定義的的偏好設置,必須先準備好一個設置束

->【Next】->【Save As】:Setting.bundle保持默認的配置。

->保存默認的存儲位置點擊【Create】

在項目導航區多了一個設置束文件【Setting.bundle】。

點擊下拉箭頭,查看設置束的屬性列表文件。

打開並編輯屬性列表文件:【Root.plist】

點擊鼠標右鍵,彈出右鍵菜單,選擇【Show Raw Keys/Values】顯示原始鍵/值選項。

點擊【PreferenceSpecifiers】下拉箭頭,查看所有默認提供的鍵和值。

查看第一個屬性【Item0 Group-Option group】的鍵和值,修改屬性組的名稱:【Title】:Option group

查看第二個屬性【Item1 TextField-Article】的鍵和值,修改屬性鍵的名稱:【Key】:key_article

設置該屬性標題的文字內容:【Title】:Article

查看第三個屬性【Item2 ToggleSwitch-Visible】的鍵和值,修改屬性鍵的名稱:【Key】:key_visible

設置該屬性標題的文字內容:【Title】:Visible

查看第四個屬性【Item3 Slider】的鍵和值,修改屬性鍵的名稱:【Key】:key_value

設置滑桿的默認值【DefaultValue】:50

設置滑桿的最小值【MinimumValue】:1

設置滑桿的最大值【MaximumValue】:100

【運行程序】->點擊底部的【Home】主頁按鈕,退出當前的應用程序。

點擊【Setting】設置->進入應用程序【DemoApp】的偏好設置頁面。

在【Article】文章名稱輸入框內,輸入文章的名稱。【Article】:Strengthen

點擊開關按鈕,設置可見性參數的值。在滑桿上點擊,設置滑桿的值。

Root.plist文件內容:

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 3 <plist version="1.0">
 4 <dict>
 5     <key>StringsTable</key>
 6     <string>Root</string>
 7     <key>PreferenceSpecifiers</key>
 8     <array>
 9         <dict>
10             <key>Type</key>
11             <string>PSGroupSpecifier</string>
12             <key>Title</key>
13             <string>Option group</string>
14         </dict>
15         <dict>
16             <key>Type</key>
17             <string>PSTextFieldSpecifier</string>
18             <key>Title</key>
19             <string>Article</string>
20             <key>Key</key>
21             <string>key_article</string>
22             <key>DefaultValue</key>
23             <string></string>
24             <key>IsSecure</key>
25             <false/>
26             <key>KeyboardType</key>
27             <string>Alphabet</string>
28             <key>AutocapitalizationType</key>
29             <string>None</string>
30             <key>AutocorrectionType</key>
31             <string>No</string>
32         </dict>
33         <dict>
34             <key>Type</key>
35             <string>PSToggleSwitchSpecifier</string>
36             <key>Title</key>
37             <string>Visible</string>
38             <key>Key</key>
39             <string>key_visible</string>
40             <key>DefaultValue</key>
41             <true/>
42         </dict>
43         <dict>
44             <key>Type</key>
45             <string>PSSliderSpecifier</string>
46             <key>Key</key>
47             <string>key_value</string>
48             <key>DefaultValue</key>
49             <integer>8</integer>
50             <key>MinimumValue</key>
51             <integer>1</integer>
52             <key>MaximumValue</key>
53             <integer>10</integer>
54             <key>MinimumValueImage</key>
55             <string></string>
56             <key>MaximumValueImage</key>
57             <string></string>
58         </dict>
59     </array>
60 </dict>
61 </plist>

在項目導航區,打開視圖控制器的代碼文件【ViewController.swift】

在視圖控制器類文件中,讀取上文的偏好設置。

 1 import UIKit
 2 
 3 class ViewController: UIViewController {
 4 
 5     override func viewDidLoad() {
 6         super.viewDidLoad()
 7         // Do any additional setup after loading the view, typically from a nib.
 8         
 9         //UserDefaults類,提供了一個與系統進行交互的編程接口。
10         //該對象可以保存、恢復應用程序相關的偏好設置,配置數據等。
11         let userDefaults = UserDefaults.standard
12         
13         //通過在Root.plist屬性列表文件中,設置的鍵名,讀取對應的文章名稱。
14         let article = userDefaults.object(forKey: "key_article")
15         //以同樣的方式,根據鍵名,讀取布爾值。
16         let visible = userDefaults.object(forKey: "key_visible")
17         //繼續讀取通過滑桿設置的參數值
18         let value = userDefaults.object(forKey: "key_value")
19         
20         //在控制臺分別輸出三個參數值
21         print("article:\(String(describing: article))")
22         print("visible:\(String(describing: visible))")
23         print("value:\(String(describing: value))")
24     }
25 
26     override func didReceiveMemoryWarning() {
27         super.didReceiveMemoryWarning()
28         // Dispose of any resources that can be recreated.
29     }
30 }

[Xcode10 實際操作]九、實用進階-(8)實現App的Setting設置:添加和讀取程序的配置信息