SwiftUI学习笔记CoreData使用
使用自带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使用相关推荐
- SwiftUI学习笔记之异步数据请求
SwiftUI学习笔记之异步数据请求 方法一 方法描述: 结合使用 ObservableObject @Published @ObservedObject ObservableObject 定义自己的 ...
- SwiftUI学习笔记之@State, @Binding
SwiftUI笔记之@State, @Binding 首先看一段代码 // // ContentView.swift // SwiftUIGuide // // Created by Jeans Oy ...
- SwiftUI学习笔记[path绘制]
前言 绘制的底层是强大的,我们所用的各端语言只是在现代UI追求的步伐中和用户喜好的交互中求同存异,抽取封装出自成个性风格的UI控件,当然面对万亿级别的客户各个平台的UI库出也不可能满足所有的客户需求, ...
- 【SwiftUI学习笔记】Git Repository Creation FailedEnsure the author information supplied in Xcode ...
最近在参加IOS训练营,学习SwiftUI中,以此专栏记录一些学习过程中遇到的心得和问题. 1.创建storyboard,点击Next后弹出错误 Git Repository Creation Fai ...
- Core Data 学习笔记(二)被管理对象模型
为什么80%的码农都做不了架构师?>>> 目录 Core Data 学习笔记(一)框架简介 Core Data 学习笔记(二)被管理对象模型 Core Data 学习笔记(三) ...
- iOS App Clips学习笔记
一.什么是App Clip? App Clip是一个App的轻量版,用来提供一些用户所需功能,我们可以把它看成苹果的小程序.它不需要下载就直接能打开.这样即可达到不下载完整版APP便可体验APP的部分 ...
- PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 call
您的位置 首页 PyTorch 学习笔记系列 PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 发布: 2017年8月4日 7,195阅读 ...
- 容器云原生DevOps学习笔记——第三期:从零搭建CI/CD系统标准化交付流程
暑期实习期间,所在的技术中台-效能研发团队规划设计并结合公司开源协同实现符合DevOps理念的研发工具平台,实现研发过程自动化.标准化: 实习期间对DevOps的理解一直懵懵懂懂,最近观看了阿里专家带 ...
- 容器云原生DevOps学习笔记——第二期:如何快速高质量的应用容器化迁移
暑期实习期间,所在的技术中台-效能研发团队规划设计并结合公司开源协同实现符合DevOps理念的研发工具平台,实现研发过程自动化.标准化: 实习期间对DevOps的理解一直懵懵懂懂,最近观看了阿里专家带 ...
最新文章
- legnano里的看板成员及权限规则?项目成员及规则?
- VS2010测试功能之旅:编码的UI测试(6)- 提高UI测试稳定性的8个方法(下)
- 找出如下数组中最大的元素和最小的元素, a[][]={{3,2,6},{6,8,2,10},{5},{12,3,23}}
- Apache主配置文件httpd.conf 详解
- struts2框架从数据库批量取得数据集并在前台页面循环显示
- VCL界面控件DevExpress VCL Controls发布v18.2.5|附下载
- 学生电脑哪个牌子好_面包冷藏车哪个牌子好
- javaSE-多线程1
- powershell 学习地址
- 微信h5网页关闭分享以及关闭当前页面
- IPFS搭建HTTPS去中心化网站,真实可用
- Vrep之configuration space之间和pose之间距离的计算方法
- 一文带你了解GaussDB(DWS) 的Roach逻辑备份实现原理
- java frame的使用方法_java内部窗体internalFrame的使用方法
- win7护眼透明主题 “魅力win7”
- 浙大PAT 1033
- VIPKID壁垒破碎:境外外教课包将下线,核心竞争力消失?
- ‘Converting circular structure to JSON‘报错的解决方案
- MTK笔试面试题集锦
- 模型推理时显存不足问题
热门文章
- java Preferences 使用
- 理解fmt||net/http in Go
- nodejs爬虫与php爬虫,利用nodejs爬虫使用superagent和cheerio的方法
- 股票入门基础知识36:三烛台模式——三个白武士和三只乌鸦
- C++之system函数
- 铂涛集团旗下长租公寓品牌窝趣完成近2亿元B轮融资...
- Windows下Elasticsearch安装及Kibana安装
- ROUND(IF(J7150,150*D7,J7*D7),1) excl这个函数是什么意思
- [转]乔布斯的薄伽梵歌 Steve’s Bhagavat Gita
- 差分法~超详细(公式+原理+例题)