类型“DailyScrum”的值没有动态成员“history”,使用的关键路径来自根类型“DailyScrum”

2022-01-27 16:05:35 标签 iosswiftswiftui

我正在学习Swift Tutorial;iOS App Dev教程。

在状态管理更新App Data Section 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.
        }

有三个错误消息。

不能调用非函数类型“Binding”的值

引用下标'下标(dynamicMember:)'需要包装器'Binding'

我认为这是同一原因造成的错误。

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有如下属性:

但是如果你下载了下一章更新App Data的代码,开始的项目已经扩展了DailyScrum并添加了一个新的History对象:

let id: UUID
var title: String
var attendees: [String]
var lengthInMinutes: Int
var color: Color

除非您在本教程所建议的范围之外对代码进行了自己的修改,否则我建议您在每一章的末尾放弃您的工作项目,并在新一章的开头从ZIP文件中提取StartingProject。这样你就可以继续阅读,而不必担心苹果在章节之间插入了什么新代码。

let id: UUID
var title: String
var attendees: [String]
car lengthInMinutes: Int
var color: Color
var history: [History]

阅读全文

▼ 版权说明

相关文章也很精彩
推荐内容
更多标签
相关热门
全站排行
随便看看

错说 cuoshuo.com —— 程序员的报错记录

部分内容根据CC版权协议转载;网站内容仅供参考,生产环境使用务必查阅官方文档

辽ICP备19011660号-5

×

扫码关注公众号:职场神器
发送: 1
获取永久解锁本站全部文章的验证码