[Xcode10 实际操作]九、实用进阶-(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 }

原文地址:https://www.cnblogs.com/strengthen/p/10088783.html

时间: 2024-08-26 15:45:53

[Xcode10 实际操作]九、实用进阶-(8)实现App的Setting设置:添加和读取程序的配置信息的相关文章

[Xcode10 实际操作]九、实用进阶-(25)使用Storyboard(故事版)的约束功能,使项目快速适配各种分辨率的设备

本文将演示使用故事版的约束功能,使项目快速适配各种分辨率的设备. 在项目导航区打开并编辑主故事版[Main.storyboard]. 在当前故事版中,已经存在一个适配4寸屏幕的界面, 点击设备名称,更改设备类型.在弹出的模拟器列表中,选择一款拥有4.7寸屏幕的模拟器. 然后通过系统提供的约束功能,对各尺寸屏幕进行适配. 在故事版文档框架区中的[View Controller],点击显示[MainView]视图下的所有子元素. 该视图是添加的自定义视图,尺寸与根视图相同,并且包含了页面中的所有元素

[Xcode10 实际操作]九、实用进阶-(32)项目的打包上传和提交审核以及下架处理

本文将演示如何将一个应用程序进行打包上传,并提交审核以及下架处理. 点击项目[DemoApp]->[Build Settings]编译设置->[Provisioning Profile]证书设置区域. 在[苹果开发者管理后台],创建应用程序的开发证书和发布证书. [Debug]:首先设置应用程序的开发证书,有了开发证书后,可以在真机设备上运行和测试应用程序. 在弹出的证书列表中,列出了所有的开发证书和发布证书,这里选择开发证书. [Release]:设置应用程序的发布证书,发布证书可以让您对应

[Xcode10 实际操作]九、实用进阶-(9)陀螺仪设备的使用

本文将演示陀螺仪设备的使用. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] 1 import UIKit 2 //导入需要用到的CoreMotion框架 3 //该框架不仅提供实时的加速度值,还提供设备的三维姿态信息. 4 import CoreMotion 5 6 class ViewController: UIViewController { 7 8 //添加一个属性,该属性是框架提供的一个运动管理类. 9 //然后由这个类,去管理三种和运动相关的数据封

[Xcode10 实际操作]九、实用进阶-(18)图像人脸识别:对图片中的人像进行面部检测

本文将演示对图片中的人像,进行面部检测. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] 1 import UIKit 2 //导入要使用的CoreImage框架 3 //该框架提供了强大和高效的图片处理功能. 4 //用来对基于像素的图像进行分析.操作和特效处理 5 import CoreImage 6 7 class ViewController: UIViewController { 8 9 override func viewDidLoad() { 1

[Xcode10 实际操作]九、实用进阶-(7)使用Xcode的版本管理功能(SCM)

本文将演示系统的版本控制功能. 软件配置管理(SCM):Software configuration management 是指通过执行版本控制.变更控制的规程,以及使用合适的配置管理软件, 来保证所有配置项的完整性和可跟踪性.配置管理是对工作成果的一种有效保护. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] 添加一行代码,在控制台打印输出日志. 1 import UIKit 2 3 class ViewController: UIViewControlle

[Xcode10 实际操作]九、实用进阶-(10)定位设备的使用

本文将演示定位设备的使用. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] 1 import UIKit 2 //导入需要用到的定位CoreLocation框架 3 //该框架可以利用三种技术来实现定位: 4 //1.全球卫星定位系统 5 //2.蜂窝基站三角网定位 6 //3.无线网络定位服务 7 //其中,全球卫星定位系统是最精确的. 8 import CoreLocation 9 10 //添加一个地理定位的代理协议CLLocationManagerDe

[Xcode10 实际操作]九、实用进阶-(17)使用CGBlendMode改变UIImage颜色,实现对图片进行混合着色

本文将演示如何使用CGBlendMode改变UIImage颜色,实现对图片进行混合着色. 在项目文件夹[DemoApp]上点击鼠标右键 ->[New File]创建一个扩展文件->模板选择窗口:[Swift File]->[Next] ->[Save As]:ExtensionUIImage.swift->保存默认的存储位置点击[Create] 在[ExtensionUIImage.swift]添加一个针对UIImage类的扩展. 扩展可以向一个已有的类.结构体或枚举类型添加

[Xcode10 实际操作]九、实用进阶-(26)对Storyboard(故事版)中的文字标签(Label)进行本地化处理

对Storyboard(故事版)中的文字标签(Label)进行本地化处理. 点击项目名称[DemoApp]进入项目信息面板. [Build Setting]->[Localizations]本地化下方的[+]弹出语言列表 ->选择[Chinese(Simplified)(zh-Hans)]简体中文 ->点击取消选择[LaunchScreen.storyboard]启动视图左侧的复选框, 只保留对[Main.storybooard]主故事板进行本地化处理. ->点击[Finish]完

[Xcode10 实际操作]九、实用进阶-(27)字符串文件(Localizable.strings)的本地化

本文将演示字符串文件(Localizable.strings)的本地化. 在项目[DemoApp]文件夹下点击鼠标右键,弹出右键菜单 ->[New File]新建文件命令,创建一个字符串文件. ->[Strings File]字符串文件->[Next] ->[Save As]:Localizable.strings.文件名是固定的[Localizable.strings],请不要用别的名称. ->保持默认的存储位置,点击[Create] 点击[显示或隐藏检查器]图标,打开右侧