利用UserDefault在系统沙盒存储内容,通过JSON编码和解码实现数据的持久存储,每次打开应用进行的操作都会保存下来至本地。

找到沙盒路径

print(NSHomeDirectory())

用command+空格复制路径找到文件夹,打开Library文件夹,再打开Preferences文件夹,打开里面的plist文件,可以看到储存的内容,点击Type可以看到储存的基础类型。

由于是自己定义的Todo类型,所以无法存进plist文件,需转data类型,用json编码,但是Todo类型必须遵从编码和解码的协议。

func saveData(){//本地存储do{let data = try JSONEncoder().encode(todos)UserDefaults.standard.set(data, forKey: kTodosKey)//由于是Todo类型所以无法存进plist文件,需转data类型,用json编码}catch{print("编码错误")}}

key为自己定义的

在待办事项的添加修改删除功能中调用储存函数编码储存,在ViewDidLoad()开头调用解码函数解码读取内容。

if let data = UserDefaults.standard.data(forKey: kTodosKey){if let todos = try? JSONDecoder().decode([Todo].self, from: data){self.todos = todos}else{print("解码失败")}}//取数据

本地存储待办事项(在待办事项上进行改进)相关推荐

  1. 为VMware ESXi主机添加本地存储的过程及注意事项之2

    为VMware ESXi主机添加本地存储的过程及注意事项-之2 类别 [创作类型:原创] ; 网络技术 2 为服务器添加硬件并重新规划RAID 2.1 添加RAID卡及硬盘 当主机关闭之后,拔下电源线 ...

  2. ios 上传图片到阿里云的oss_JEECG BOOT 上传如何同时支持阿里OSS、Minio、本地存储

    Jeecg-Boot 提供了文件及图片上传功能,前两个文件已介绍了MinIO和OSS配置,现在可根据需要选择上传方式. 文件上传接口(图片/文件) 在yml文件中可切换图片/文件存储方式 访问路径 上 ...

  3. 待办事项APP排行,手机上记录工作待办事项的APP软件

    在日常的工作及生活中,经常会有各种各样的待办事项需要处理,尤其是职场人既要兼顾职场工作又要照顾生活的方方面面,如果没有一款很好用的待办事项软件来帮助大家记录各项内容,大家就会很容易出现做完这一件事情, ...

  4. 什么是待办事项?日常办事项清单怎么写

    什么是待办事项?待办事项简单来说就是还没有完成,但是需要完成的事项.这类事项非常容易忘记,而且忘记了会给自己和周围的人带来麻烦.如果你每天事情比较多,想要记住所有的事情显然不可能,这就需要一个记录清单 ...

  5. 选择云存储服务需要注意哪些事项?

    如今云存储服务提供商有很多,并且这一些厂商大多数都提供了免费的存储空间,可是依然是有一些事项是需要我们注意的.那么,选择云存储服务的时候需要注意哪些事项呢? 下面就跟着小杜的脚步,一起来看看选择云存储 ...

  6. picACG本地缓存目录_手机上本地存储的哪些文件、文件夹不能删?

    手机.电脑随着不断的使用,系统本身.系统工具.第三方应用都会不断产生一些临时文件和垃圾文件.手机产生的垃圾文件更是显得杂乱无章,虽然可以使用系统自带或第三方应用来清理垃圾,但在本地存储还是有大量的文件 ...

  7. 如何将常用的软件上传到ESXi本地存储中管理

    一.如何将常用的软件上传到ESXi本地存储中管理 在使用虚拟机时,我们可能需要多个软件.比如部署操作系统需要CentOS或者Windows的镜像,再基于操作系统安装数据库可能有需要SQLServer. ...

  8. 微信小程序【网易云音乐实战】(第四篇 用户登录、本地存储、视频播放、上拉下拉刷新)

    一.用户登录 官网事件使用使用 1. 绑定事件 和 获取数据 bindinput :当输入框有变化时,触发事件. handleInput(event){// let type=event.curren ...

  9. icloud文档本地存储_如何在iCloud存储上省钱

    icloud文档本地存储 The situation with iCloud storage would be funny if it wasn't so ridiculous, and we've ...

最新文章

  1. 亚马逊63岁「老司机」困在算法里,工作4年却因机器评分太低被开除!
  2. 一个射击运动员打靶,靶一共有10环,连开10枪打中90环的可能性有多少种?请用递归算法编程实现。...
  3. Content Provide详解
  4. python地图 两点距离_使用Python调用百度地图Api获取两地距离
  5. 459. Repeated Substring Pattern 重复的子字符串
  6. 3198元起!魅族16s开启预约:4月28日全渠道首发
  7. Optional Chaining 进入 ES2020,不用满屏`x x.yyy`了
  8. php怎么取json数组元素个数,json,数组_取出json数据中的某一项组成一个数组?,json,数组,php - phpStudy...
  9. Python: 更改Jupyter Notebook默认工作路径?
  10. Python学习笔记11:标准库之文件管理(os包,shutil包)
  11. hdu 1874 畅通project续
  12. Python获取图片的大小/尺寸
  13. BZOJ4571: [Scoi2016]美味【主席树】【贪心】
  14. 银河麒麟V10共享文件夹内无法创建wps文件的解决方法
  15. 使用RTX Server SDK帮助文档开发
  16. Adjoint of SE(3)
  17. 电容电阻电感的等效分析
  18. 百度LBS开放平台个性化地图 制作一款独一无二的地图
  19. Prometheus + Grafana 实现监控功能总结
  20. 《黄花黄》曈曈诗作品摘录

热门文章

  1. docker 安装redis集群配置3主3从,实现hash槽分配存储数据
  2. qeePHP学习 qeePHP模型的CURD
  3. spark 第一个简单实例wordcount
  4. 信息管理系统设计与实现
  5. ARM内核与架构通俗理解:
  6. 我还活着......
  7. codeforces 742A
  8. android go官方下载,Android10GO版最新版
  9. 你必须知道的8个程序员刷题网站!
  10. 自制电吉他效果器 DIY PCB(六)后记