文章目录

  • 0. 本篇重点
  • 1. 数据都存在哪
    • [1] Documents
    • [2] Library
    • [3] SystemData
    • [4] tmp
  • 2. 用户偏好的存取
    • [0] 获取用户偏好对象 —— UserDefaults.standard
    • [1] 存 —— defaults.set(value,key)
    • [2] 取 —— defaults.string(key)
  • 3. Settings Bundle
    • [1] 新建 Settings.bundle 文件
    • [2] 查看 Settings
    • [3] 设置 Key
    • [4] 读取 Value

0. 本篇重点

  • Swift 中程序文件的存储位置及其获取方式
  • 如何设置用户偏好
  • 如何让 settings 为我所用

1. 数据都存在哪

  • 可用以下代码来查找
//applicationDirectory 表示应用所在的目录
let dirpath = FileManager.default.urls(for: .applicationDirectory,                     in:.userDomainMask).first!//将目录打印出来
print(dirpath)
  • 我这里的输出结果
file:///Users/hedon-/Library/Developer/CoreSimulator/Devices/E6B852C2-C4FB-4973-9F61-92EEC9BF837C/data/Containers/Data/Application/A51F74A3-2B6E-4918-9E54-5AEC8CE63DC9/Applications/
  • 在访达中查找此路径

  • 4 个文件夹
[1] Documents
  • 应用程序将数据存储在 Documents 目录中。

  • 如果你的应用程序启用了 ITunes 文件分享功能。用户就可以在 iTunes 中看到目录的内容,还可以对其上传文件。

    • 启动文件分享功能:

      • 需要打开它的 Info.plist 文件并添加键为 Application supports iTunes file sharing、值为 YES 的条目。
[2] Library
  • Library 也可以存储数据。
  • 但是它用来存放不想共享给用户的文件。
  • 子目录:
[3] SystemData
  • 存放系统的一些数据
[4] tmp
  • 存放临时文件

2. 用户偏好的存取

[0] 获取用户偏好对象 —— UserDefaults.standard
let defaults = UserDefaults.standard

[1] 存 —— defaults.set(value,key)

@IBAction func writeButtonPressed(_ sender: Any) {let uuid = uuid_preference.text!let name = name_preference.text!//存用户偏好数据defaults.set(uuid, forKey: uuidKey)defaults.set(name, forKey: nameKey)
}

[2] 取 —— defaults.string(key)

@IBAction func readButtonPressed(_ sender: Any) {//获取用户偏好设置let uuid = defaults.string(forKey: uuidKey)let name = defaults.string(forKey: nameKey)uuid_preference.text = uuidname_preference.text = name
}

3. Settings Bundle

iPhone 中有一个应用程序叫做 Settings,我们也可以将我们希望设置的用户偏好设置交给 Settings 来设置,这里就需要让我们的程序带上“设置捆绑包”(Settings Bundle)

[1] 新建 Settings.bundle 文件

[2] 查看 Settings

[3] 设置 Key

[4] 读取 Value

我们这里在 Root.list 中新建一个偏好设置的 item,然后尝试在界面中的一个 Label 中读取出 Value

  • 新建偏好设置 item

  • 查看效果

  • 选中,测试

Swift — UIKit 之(8)—— 持久层|用户偏好设置相关推荐

  1. Android学习笔记---16_采用SharedPreferences保存用户偏好设置参数

    16_采用SharedPreferences保存用户偏好设置参数 Android学习笔记---16_采用SharedPreferences保存用户偏好设置参数 2013-03-08 16_采用Shar ...

  2. android 偏好设置,SharedPreferences保存、显示用户偏好设置

    例如要保存用户的姓名和年龄两个参数,如下图布局 1.在strings.xml文件中声明要使用到的字符串 2.在布局文件中添加,,控件,实现上图的布局 android:layout_width=&quo ...

  3. xamarin android密码,Xamarin.Forms学习历程(七)——用户偏好设置存储

    经常会遇到要存储一下用户账号密码之类的,让用户下次登录时不需要重新输入账号密码,直接进入主界面.Xamarin.Forms里没有自己的解决方案,还是得调用iOS和Android原生的API才可以实现. ...

  4. 实例教程五:采用SharedPreferences保存用户偏好设置参数

    android水管工人游戏源码 http://www.eoeandroid.com/thread-207446-1-1.html Android推箱子小游戏 http://www.eoeandroid ...

  5. iOS之应用偏好设置

    为什么80%的码农都做不了架构师?>>>    如今,即便是最简单的计算机程序也会包含一个偏好设置窗口,用户可以在其中设置应用专属的选项.在MAC OS X中,Preferences ...

  6. hibernate 根据用户名获取用户对象_Mybatis 和 Hibernate 持久层框架之间的区别是啥?...

    首先,Mybatis 和 Hibernate 都是 ORM 持久层框架,不同点在于,MyBatis 是半自动的,它需要开发人员自己手动编写 SQL 语句. 一.Mybatis MyBatis 支持通过 ...

  7. 持久层框架之MyBatis

    1.mybatis框架介绍: MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并 ...

  8. 持久层是什么意思_软件项目实训及课程设计指导—如何在数据持久层中应用DAO模式...

    软件项目实训及课程设计指导--如何在J2EE应用系统数据持久层中应用DAO模式 1.为什么要在软件应用系统中提供数据持久层 软件应用系统中的数据持久层主要为整个软件应用系统提供数据访问功能服务,从而可 ...

  9. mysql高可用 持久层_MyBatis持久层框架使用总结 转载

    MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis . 2 ...

最新文章

  1. 设计模式----模板方法模式UML和实现代码
  2. 半导体基础知识(1):材料和器件
  3. java 过滤攻击报文_Spring Boot XSS 攻击过滤插件使用
  4. frpfile官方最新绕id工具_【IPFS动态】IPFS官方周报第104期:Chromium增加了对IPFS的支持!...
  5. oracle轮询方式循环输出,LGWR的两种模式(POST/WAIT和POLLING)
  6. 第五章 - 图像形态学 - 基于图像金字塔的图像分割(cvPyrSegmentation)
  7. oracle 查询所有组合,Oracle的组合条件查询
  8. 关于EFCore线程内唯一
  9. ibator使用心得
  10. Javascript中char和int的互相转换的代码(转载)
  11. Ubuntu14.04 + KinectV2驱动安装 以及 Ros接口(基于网上方法试错 改进版)
  12. 构建项目AppFuse+QuickStart
  13. IntelliJ IDEA激活破解有效方法
  14. xp系统怎么定时锁定计算机,电脑怎么设置自动锁屏_XP系统电脑怎么设置自动锁屏...
  15. linux 内核入口地址,Linux内核程序入口地址
  16. 通信接口——RS-232与RS-422及RS-485三者之间的特性与区别
  17. Java API II
  18. arcsinx用计算机怎么按,数学arcsinx和arccosx怎么用公 – 手机爱问
  19. 问题解决:The connection to the server xxxxx:6443 was refused - did you specify the right host or port?
  20. Bose700降噪体验

热门文章

  1. 熟悉陌生的2-范数(向量的模)
  2. android app防止锁屏_android 屏幕保持不锁屏的实现方式
  3. 有些朋友没看清楚,我在这里再特意强调一下
  4. 基于PaddleOCR的集装箱箱号检测识别
  5. 2022全新Java学习路线图动力节点(七)架构师必备技术
  6. GPU阵列 安特卫普大学展示桌面超级计算机Fastra II
  7. php pdo oracle 乱码,php pdo 乱码怎么办
  8. 什么是贝叶斯网络?原理入门
  9. 天才数学家科学家用电脑研究出“彩票必胜公式必赢方案”,连中14次大奖
  10. 总结 : 毕设采访原文呈现