[Xcode 实际操作]九、实用进阶-(8)实现App的Setting设置:添加和读取程序的配置信息
本文将演示如何实现添加和读取程序的配置信息。
在项目文件夹【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 }