gpt4 book ai didi

swift - 在 SwiftUI 中修改 ForEach 中的结构数据

转载 作者:行者123 更新时间:2023-12-04 08:57:04 24 4
gpt4 key购买 nike

我有一个概述数据的结构,然后是一个包含结构数组的类。

struct Example: Codable, Identifiable {
var id: UUID

var title: String
var description: String?

var tags: [String]
}

class Examples: ObservableObject {
@Published var examples = [Example]()
}

然后,我有一个用按钮显示数据的 ForEach:

ForEach(examples.examples) { example in
VStack {
Button("Complete") {
example.completed = true
}
Text(example.title)
}
}

当我尝试运行时,出现错误“无法分配给属性:'example' 是一个 'let' 常量。”我试过使用@Binding var(来自 this post )将示例传递到单独的 View 中,并使用索引(来自 this post )修改数据,但两者都给我一个错误,说 Xcode 无法生成诊断报告和文件反馈。如何修改数据?

抱歉,如果这是一个糟糕的问题,我是 SwiftUI 的新手

最佳答案

这是因为 ForEach 返回原始 example 的只读副本 供您操作,您无法修改它。即使可以,它也不会是相同的结构(结构是值类型)。

您需要改为访问原始项目:

var body: some View {
ForEach(examples.examples.indices) { index in
VStack {
Button("Complete") {
examples.examples[index].completed = true
}
Text(examples.examples[index].title)
}
}
}

关于swift - 在 SwiftUI 中修改 ForEach 中的结构数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63769509/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com