zoukankan      html  css  js  c++  java
  • [Xcode 实际操作]九、实用进阶-(8)实现App的Setting设置:添加和读取程序的配置信息

    目录:[Swift]Xcode实际操作

    本文将演示如何实现添加和读取程序的配置信息。

    在项目文件夹【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 }
  • 相关阅读:
    [MST] Test mobx-state-tree Models by Recording Snapshots or Patches
    [MST] Attach Behavior to mobx-state-tree Models Using Actions
    [MST] Describe Your Application Domain Using mobx-state-tree(MST) Models
    [Angular] Configure an Angular App at Compile Time with the Angular CLI
    [Angular] Configure an Angular App at Runtime
    [Test] Easy automated testing in NodeJS with TestCafe
    [React] Optimistic UI update in React using setState()
    [Javascript] Required function arguments in Javascript
    [Transducer] Lazyness in Transduer
    [Transducer] Create a Sequence Helper to Transduce Without Changing Collection Types
  • 原文地址:https://www.cnblogs.com/strengthen/p/10088783.html
Copyright © 2011-2022 走看看