使用自带CoreData进行数据存储

1.创建新的SwiftUI工程,名字取为What to do,创建的时候在User Core Data前打勾☑️。

这样就在AppDelegate.swift中则自动添加了两个函数,用于处理coredata,不再需要手动添加了(What拼错了,懒得改了)。

2.找到WhatToDo.xcdataModeld文件,点击Add Entity,添加新的Entity,命名为"ToDoItem"。在Attribute中添加两个变量,needToDo 类型为String,ShowFlag 类型为Boolean。因为这个小程序只有很简单的添加内容以及完成与否显示功能,所以变量很少。

3.现在可以进入ContentView.swift编程首先定义coredata数据相关的内容,用于处理coredata

操作变量toDoItem即操作本工程中读取后的coredata,并按needToDo中字符串升序排列好的。
定义两个变量,对应ToDoItem中变量

@State private var thingsToDo = ""
@State private var showFinishedFlag = false

定义一个图片处理函数

//判断是否显示checkmark
func image(for state: Bool) -> Image {return state ? Image(systemName: "checkmark.circle") : Image(systemName: "circle")}

显示文本输入框,以及确认Button。当文本输入完成后,点击Button后存储到CoreData数据中。

HStack {TextField("待办?", text: $thingsToDo)Button(action: {let newThing = ToDoItem(context:    self.managedObjectContext)newThing.needToDo = self.thingsToDonewThing.showFlag = falsedo{try  self.managedObjectContext.save()}catch{print(error)}self.thingsToDo = ""}){Text("✓").font(.headline)}}

模拟器显示

每次点击蓝色☑️的时候,存储CoreData数据,清除TextField中信息。

4.完善显示
加入List与Section将待输入内容与已经输入好的分开显示

List{//待输入Section(header: Text("写点啥")){HStack {TextField("待办?", text: $thingsToDo)Button(action: {let newThing = ToDoItem(context: self.managedObjectContext)newThing.needToDo = self.thingsToDonewThing.showFlag = falsedo{try  self.managedObjectContext.save()}catch{print(error)}self.thingsToDo = ""}){Text("✓").font(.headline)}}}//显示已经输入完成的内容Section(header: Text("要做的事")){ForEach(toDoItems, id: \.self){item inHStack {self.image(for: item.showFlag).onTapGesture {item.showFlag.toggle()do{try  self.managedObjectContext.save()}catch{print(error)}}}}}}

模拟器
基本完成。后续加入对已经录入内容修改页面,以及删除已录入内容。

SwiftUI学习笔记CoreData使用相关推荐

  1. SwiftUI学习笔记之异步数据请求

    SwiftUI学习笔记之异步数据请求 方法一 方法描述: 结合使用 ObservableObject @Published @ObservedObject ObservableObject 定义自己的 ...

  2. SwiftUI学习笔记之@State, @Binding

    SwiftUI笔记之@State, @Binding 首先看一段代码 // // ContentView.swift // SwiftUIGuide // // Created by Jeans Oy ...

  3. SwiftUI学习笔记[path绘制]

    前言 绘制的底层是强大的,我们所用的各端语言只是在现代UI追求的步伐中和用户喜好的交互中求同存异,抽取封装出自成个性风格的UI控件,当然面对万亿级别的客户各个平台的UI库出也不可能满足所有的客户需求, ...

  4. 【SwiftUI学习笔记】Git Repository Creation FailedEnsure the author information supplied in Xcode ...

    最近在参加IOS训练营,学习SwiftUI中,以此专栏记录一些学习过程中遇到的心得和问题. 1.创建storyboard,点击Next后弹出错误 Git Repository Creation Fai ...

  5. Core Data 学习笔记(二)被管理对象模型

    为什么80%的码农都做不了架构师?>>>    目录 Core Data 学习笔记(一)框架简介 Core Data 学习笔记(二)被管理对象模型 Core Data 学习笔记(三) ...

  6. iOS App Clips学习笔记

    一.什么是App Clip? App Clip是一个App的轻量版,用来提供一些用户所需功能,我们可以把它看成苹果的小程序.它不需要下载就直接能打开.这样即可达到不下载完整版APP便可体验APP的部分 ...

  7. PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 call

    您的位置 首页 PyTorch 学习笔记系列 PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 发布: 2017年8月4日 7,195阅读 ...

  8. 容器云原生DevOps学习笔记——第三期:从零搭建CI/CD系统标准化交付流程

    暑期实习期间,所在的技术中台-效能研发团队规划设计并结合公司开源协同实现符合DevOps理念的研发工具平台,实现研发过程自动化.标准化: 实习期间对DevOps的理解一直懵懵懂懂,最近观看了阿里专家带 ...

  9. 容器云原生DevOps学习笔记——第二期:如何快速高质量的应用容器化迁移

    暑期实习期间,所在的技术中台-效能研发团队规划设计并结合公司开源协同实现符合DevOps理念的研发工具平台,实现研发过程自动化.标准化: 实习期间对DevOps的理解一直懵懵懂懂,最近观看了阿里专家带 ...

最新文章

  1. legnano里的看板成员及权限规则?项目成员及规则?
  2. VS2010测试功能之旅:编码的UI测试(6)- 提高UI测试稳定性的8个方法(下)
  3. 找出如下数组中最大的元素和最小的元素, a[][]={{3,2,6},{6,8,2,10},{5},{12,3,23}}
  4. Apache主配置文件httpd.conf 详解
  5. struts2框架从数据库批量取得数据集并在前台页面循环显示
  6. VCL界面控件DevExpress VCL Controls发布v18.2.5|附下载
  7. 学生电脑哪个牌子好_面包冷藏车哪个牌子好
  8. javaSE-多线程1
  9. powershell 学习地址
  10. 微信h5网页关闭分享以及关闭当前页面
  11. IPFS搭建HTTPS去中心化网站,真实可用
  12. Vrep之configuration space之间和pose之间距离的计算方法
  13. 一文带你了解GaussDB(DWS) 的Roach逻辑备份实现原理
  14. java frame的使用方法_java内部窗体internalFrame的使用方法
  15. win7护眼透明主题 “魅力win7”
  16. 浙大PAT 1033
  17. VIPKID壁垒破碎:境外外教课包将下线,核心竞争力消失?
  18. ‘Converting circular structure to JSON‘报错的解决方案
  19. MTK笔试面试题集锦
  20. 模型推理时显存不足问题

热门文章

  1. java Preferences 使用
  2. 理解fmt||net/http in Go
  3. nodejs爬虫与php爬虫,利用nodejs爬虫使用superagent和cheerio的方法
  4. 股票入门基础知识36:三烛台模式——三个白武士和三只乌鸦
  5. C++之system函数
  6. 铂涛集团旗下长租公寓品牌窝趣完成近2亿元B轮融资...
  7. Windows下Elasticsearch安装及Kibana安装
  8. ROUND(IF(J7150,150*D7,J7*D7),1) excl这个函数是什么意思
  9. [转]乔布斯的薄伽梵歌 Steve’s Bhagavat Gita
  10. 差分法~超详细(公式+原理+例题)