ios - “DailyScrum”类型的值没有使用根类型“DailyScrum”的键路径的动态成员“历史”
问题描述
我正在学习 Swift 教程;iOS 应用开发教程。
在状态管理,更新应用程序数据第 2 步第 1 步、第 3 步、第 4 步,这里有一个错误。
我已经在谷歌上搜索了两个小时,但我找不到它。请帮我!
其他错误是谷歌搜索,发现问题或解决方案。
.onDisappear {
scrumTimer.stopScrum()
let newHistory = History(attendees: scrum.attendees, lengthInMinutes:
scrumTimer.secondsElapsed / 60)
scrum.history.insert(newHistory, at: 0) // <- These is an error here.
}
有三个错误消息。
无法调用非函数类型“绑定”的值
引用下标 'subscript(dynamicMember:)' 需要包装器 'Binding'
“DailyScrum”类型的值没有使用根类型“DailyScrum”的键路径的动态成员“历史”
Section(header: Text("History")) { if scrum.history.isEmpty { // <- These is an // error here. Label("No meeting yet", systemImage: "calendar.badge.exclamationmark") } ForEach(scrum.history) { history in // <- // These is an error here. HStack { Image(systemName: "calendar") Text(history.date, style: .date) } } }
我认为这是由于相同原因造成的错误。
解决方案
你没有做错任何事,除了没有注意到苹果在他们的教程中没有明确说明的事情。
与许多循序渐进的教程不同,当您完成该教程的一章时,您最终得到的代码与下一章中的起始代码不同。
因此,当您完成有关管理状态和生命周期的章节时,DailyScrum
具有以下属性:
let id: UUID
var title: String
var attendees: [String]
var lengthInMinutes: Int
var color: Color
但是,如果您下载下一章的代码,更新应用程序数据,则起始项目已扩展DailyScrum
并添加了一个新History
对象:
let id: UUID
var title: String
var attendees: [String]
car lengthInMinutes: Int
var color: Color
var history: [History]
除非您在教程建议之外对代码进行自己的修改,否则我建议您在每章末尾放弃您的工作项目,并StartingProject
从新章节开头的 ZIP 文件中提取。这样,您应该能够继续跟进,而不必总是担心 Apple 在各章之间添加了哪些新代码。
推荐阅读
- sql - 可以使用带有数据透视/计数的合并将空值映射到 Spark sql 中的零吗?
- python - 多列的二进制编码
- windows-10 - 如何在 Windows 10 上安装 Sybase Adaptive Server Enterprise PC Client 15.5?
- python - Django - 无法在下拉列表中检索数据库中的数据
- php - PHP 更新准备好的语句问题
- c# - 如何在 C# 中清除 errno?
- programming-languages - 函数返回分配给 ret 的值的语言是什么?
- vuejs2 - Vuetify:导航抽屉:将 v-model 更改传达给父 co
- spring-boot - 通过使用 webflux 在 SpringBoot 中扩展反应式存储库来保存实体时出错
- node.js - 从函数中获取数据